Excel VBA无法从单元格中删除货币格式

时间:2013-12-17 06:47:05

标签: vba excel-vba excel-2007 excel

我正在尝试使用此VBA代码将excel文件列格式从“Currency”更改为“Text”,但它没有更改!

Private Sub Sample()
    Dim ws As Worksheet
    Dim LastRow As Long, Header As Long

    Header = 2     '<~~ Start row for formatting
    LastRow = 1000 '<~~ Last Row

    Set ws = ThisWorkbook.Sheets("Sheet1")

    With ws
        With .Range("C" & Header & ":C" & LastRow)
            '
            '~~> Change format here
            '
            '~~> Number with 5 decimal places.
            .NumberFormat = "@"
        End With
    End With
End Sub

我也试过了新的空(一般)专栏,但是没有在C上工作。请让我告诉你,即使我尝试插入新专栏,Excel也会自动插入货币格式!有没有其他可能会对此产生影响的设置? 能告诉我如何解决这个问题吗?

由于

更新 我也试过这个没用的代码!

Sub Clear_Cell_Backgroud()

    Dim ws As Worksheet
    ActiveSheet.UsedRange.Columns("C").NumberFormat = "General"
    For Each ws In Worksheets
        Cells.Interior.ColorIndex = xlNone
    Next ws

End Sub

1 个答案:

答案 0 :(得分:1)

您的代码适合我。确保

中的工作表名称正确无误
Set ws = ThisWorkbook.Sheets("Sheet1")

同样在你的第二段代码中,当你说Activesheet时,请确保它是相关的活跃表格。

或者避免使用ActiveSheet并按照您在第一段代码中所做的操作。声明一个对象并使用它。

如果您正在处理多张纸,那么您的第二个代码可以写成

Sub Clear_Cell_Backgroud()
    Dim ws As Worksheet

    For Each ws In Worksheets
        ws.Columns(3).NumberFormat = "General"
        ws.Cells.Interior.ColorIndex = xlNone
    Next ws
End Sub