【问题标题】:Excel VBA Cant' Remove Currency Format From CellExcel VBA不能'从单元格中删除货币格式
【发布时间】:2014-01-04 20:01:03
【问题描述】:

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

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

【问题讨论】:

  • 第一个代码对我有用。您面临什么问题?
  • 嗨 Siddharth,我不知道为什么我们收到的 excel 文件会自动将所有新插入的 Cols 格式化为货币!
  • 我可以使用您的代码将新插入的 EMPTY cols 更改为 Text
  • 我可以看一下您期望的数据样本和输出吗?
  • 但是对于填充的数据它没有做任何事情

标签: vba excel excel-2007


【解决方案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

【讨论】:

  • 再次感谢 VBA 摇滚!
猜你喜欢
  • 2018-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多