
使用 Excel,我希望能夠在儲存格中輸入數字(代表英吋),並讓儲存格將其顯示為英尺和英吋。例如,如果我在儲存格 A1 中輸入 62,我希望儲存格 A1 顯示 5' 2"。我知道如何使用公式取得一個儲存格的輸入並將其轉換為我想要的內容(即 =INT(A1 /12)&"' "&MOD(A1,12)&"""")。我希望A1 顯示5' 2")。似乎格式化可能是執行此操作的唯一方法,但我一直無法弄清楚如何進行。謝謝!
答案1
這應該是常規格式還是條件格式?如果是常規的,那麼您需要指定您希望它工作的區域。如果有條件,則需要指定觸發條件。
在這兩種情況下,您都需要使用 VBA。我假設 range 中的第一個變體(常規格式)A1:C3
。僅對正數進行格式化(負數和 0 保持不變)。
在標準模組中,放入功能代碼:
Function FeetIn(data As Double) As String
Dim ft As Long, inch As Double
ft = Int(data / 12)
inch = data - 12 * ft
FeetIn = IIf(ft >= 1, ft & "' ", vbNullString) & _
IIf(inch > 0, inch & "''", vbNullString) ' two apostrophes
End Function
在工作表模組中:
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Target, Range("A1:C3"))
If Target Is Nothing Then Exit Sub
Application.EnableEvents = False
Dim cell As Range
For Each cell In Target
If IsNumeric(cell.Value) Then
cell.NumberFormat = """" & FeetIn(cell.Value) & """;-General;0;@"
Else
cell.NumberFormat = "General"
End If
Next cell
Application.EnableEvents = True
End Sub
答案2
沒有公式的格式化需要使用內建格式。
Excel確實有一種以英尺和英吋為單位的顯示格式,其中英尺數位於小數點之前,而英吋數位於小數部分。
使用“設定儲存格格式...”,類別“自訂”,然後輸入以下格式規格:0' 0\"
。根據需要修改此格式。
這是您可以使用 Excel 格式設定的最大功能。不僅如此,還需要一個只能與額外欄位一起使用的公式。
欲了解更多信息,請參閱 Excel 自訂數字格式。