如果那么语句格式化单元格

时间:2014-11-21 23:42:02

标签: excel-vba format vba excel

我想写一个宏,如果列先前有一个特定的let,将格式化单元格。 例如,假设有公司ABC,DEF,GHI JKL等 B列用于公司ABC和GHI的任何地方,然后将C列中的格式更改为“000000-00-0000” B列用于其他公司的任何地方,然后将C列中的格式更改为“000000-00-00”

Sub FixFormat()
    If Range("B") = ABC Then .NumberFormat B+1 ="000000-00-00"
    If Range("B") = GHI Then .NumberFormat B+1 ="000000-00-00"
    If Range("B") = DEF Then .NumberFormat B+1 ="000000-00-0000"
    If Range("B") = JKL Then .NumberFormat B+1 ="000000-00-0000"
End Sub

我知道这不起作用,我不是最好的,所以任何帮助都会非常感激。

3 个答案:

答案 0 :(得分:2)

假设您拥有来自C1单元格的值,您可以尝试以下代码作为工作表模块

Sub chgFmt()
    For Each rCell In Range("C1:C" & Range("C1").End(xlDown).Row)
        Select Case rCell.Offset(0, -1).Value
              Case "ABC", "DEF"
                    rCell.NumberFormat = "000000-00-00"
              Case Else
                    rCell.NumberFormat = "000000-00-0000"
        End Select
    Next
End Sub

答案 1 :(得分:1)

尝试这样的事情?

Sub NumFormat()
Dim i as integer

For i = 1 to 100
Select Case Sheet1.Cells(1,i)
    Case "ABC" Or "GHI"
        Sheet1.Cells(1,i+1).EntireColumn.NumberFormat = "######-##-##"
    Case "DEF" Or "JKL"
        Sheet1.Cells(1,i+1).EntireColumn.NumberFormat - "######-##-####"
End Select
Next
End Sub

我在没有Excel的计算机上这样做,所以我无法调试,但请告诉我这是否是您正在寻找的东西!也:

http://msdn.microsoft.com/en-us/library/office/ff196401%28v=office.15%29.aspx

答案 2 :(得分:1)

选择案例似乎确实是解决您的问题的更实用方法。另一种方法是直接在Excel中制定规则,您可以说如果某个单元格包含此规则,则将发生某些情况。

相关问题