我一直在尝试做 IF 语句和 case 语句来实现这一点,但没有任何事情能成功。
基本上我有一个 5 选项卡工作簿,每个工作表中都有不同的命名范围,这些范围是一种货币格式。
然而,根据第一个选项卡中单元格的值(例如,它可能是 CAD、USD、NOK 等),这些单元格范围内的货币格式应该会改变。
即,如果选项卡 1 中的单元格值等于 CAD,则选项卡 2-5 中的所有命名范围应为“$”,如果 USD 仍为“$”,如果 NOK 为“kr”等。
任何帮助将不胜感激!
我一直在尝试做 IF 语句和 case 语句来实现这一点,但没有任何事情能成功。
基本上我有一个 5 选项卡工作簿,每个工作表中都有不同的命名范围,这些范围是一种货币格式。
然而,根据第一个选项卡中单元格的值(例如,它可能是 CAD、USD、NOK 等),这些单元格范围内的货币格式应该会改变。
即,如果选项卡 1 中的单元格值等于 CAD,则选项卡 2-5 中的所有命名范围应为“$”,如果 USD 仍为“$”,如果 NOK 为“kr”等。
任何帮助将不胜感激!
您可以将此代码放在 Tab1 工作表的代码中。当 A1 单元格的值发生变化时,它会触发您需要的工作表的表格。
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Range("A1").Value
Case "CAD"
Worksheets("Sheet2").Range("Table1").NumberFormat = "#,##0.00 [$CAD]"
Worksheets("Sheet3").Range("Table2").NumberFormat = "#,##0.00 [$CAD]"
Worksheets("Sheet4").Range("Table3").NumberFormat = "#,##0.00 [$CAD]"
Case "USD"
Worksheets("Sheet2").Range("Table1").NumberFormat = "#,##0.00 [$USD]"
Worksheets("Sheet3").Range("Table2").NumberFormat = "#,##0.00 [$USD]"
Worksheets("Sheet4").Range("Table3").NumberFormat = "#,##0.00 [$USD]"
Case "NOK"
Worksheets("Sheet2").Range("Table1").NumberFormat = "#,##0.00 [$NOK]"
Worksheets("Sheet3").Range("Table2").NumberFormat = "#,##0.00 [$NOK]"
Worksheets("Sheet4").Range("Table3").NumberFormat = "#,##0.00 [$NOK]"
End Select
End Sub
录制宏以获取您的货币格式语法并添加到您的 IF 语句中,即..
Selection.NumberFormat = "[$kr-414] #,##0.00"
您也可以考虑使用 aCase Select
而不是多个If
s