-1

我一直在尝试做 IF 语句和 case 语句来实现这一点,但没有任何事情能成功。

基本上我有一个 5 选项卡工作簿,每个工作表中都有不同的命名范围,这些范围是一种货币格式。

然而,根据第一个选项卡中单元格的值(例如,它可能是 CAD、USD、NOK 等),这些单元格范围内的货币格式应该会改变。

即,如果选项卡 1 中的单元格值等于 CAD,则选项卡 2-5 中的所有命名范围应为“$”,如果 USD 仍为“$”,如果 NOK 为“kr”等。

任何帮助将不胜感激!

4

2 回答 2

0

您可以将此代码放在 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
于 2014-11-14T17:39:24.287 回答
0

录制宏以获取您的货币格式语法并添加到您的 IF 语句中,即..

Selection.NumberFormat = "[$kr-414] #,##0.00"

您也可以考虑使用 aCase Select而不是多个Ifs

于 2014-11-14T17:31:59.543 回答