单元格值更改的Excel VBA更改编号格式

1 excel vba excel-vba

我对一些Excel visual basic有点困难.特别是我想根据单元格的值更改列的格式.这是我到目前为止所拥有的.

 Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = Range("$b$1") Then
        If Range("$b$1") = "Date" Then
            Range("d:d").NumberFormat = "m/d/yyyy"
        ElseIf Range("$b$1") = "Number" Then
            Range("d:d").NumberFormat = "#,##0.00"
        End If
    End If
End Sub    
Run Code Online (Sandbox Code Playgroud)

我是使用Target功能的新手,所以任何建议都会有所帮助.

con*_*i2k 5

我认为你不需要使用Target,只需要检查内部的块就足够了.像这样;

Private Sub Worksheet_Change(ByVal Target As Range)

    If Range("B1") = "Date" Then
        Range("D:D").NumberFormat = "m/d/yyyy"
    ElseIf Range("B1") = "Number" Then
        Range("D:D").NumberFormat = "#,##0.00"
    End If

End Sub
Run Code Online (Sandbox Code Playgroud)

然后将B1中的值更改为"日期"或"数字".