首页 > 解决方案 > 如何根据列标题格式化单个单元格类型?

问题描述

我有一个表格,第一行有一个标题,第二行有一个单位类型。这些单位类型是 $、% 等值。

我想对单元格应用数字格式和四舍五入。

我在下面的代码读取列并将格式应用于单元格,但我不知道如何舍入数字。有什么建议么?谢谢

Sub Format()

Dim lngCol As Long, i As Long
Dim str As String

lngCol = Cells(2, Columns.Count).End(xlToLeft).Column

For i = 1 To lngCol
    Select Case Cells(2, i)
        Case "$": Columns(i).Style = "Currency"
        Case "%": Columns(i).Style = "Percent"
End Select
Next

End sub

标签: excelvba

解决方案


试试这样的东西,你可以根据需要调整它......

Public Sub FormatCellsBasedOnString()
    Dim lngToCol As Long, lngCol As Long, lngToRow As Long

    With Sheet1
        lngToCol = .Cells(1, .Columns.Count).End(xlToLeft).Column

        For lngCol = 1 To lngToCol
            lngToRow = .Cells(.Rows.Count, lngCol).End(xlUp).Row
            .Range(.Cells(3, lngCol).Address & ":" & .Cells(lngToRow, lngCol).Address).NumberFormat = .Cells(2, lngCol)
        Next
    End With
End Sub

它使用列第二行中的数字格式来格式化它下面的单元格。选择真的是无穷无尽的。将单元格格式化为您想要的格式,然后在单元格格式中转到自定义并使用该字符串使用该宏概念来格式化单元格。

在此处输入图像描述

我希望这是有道理的。


推荐阅读