在Microsoft Excel中使用VBA自定义数字格式格式数据
|在本文中,我们将创建一个宏,以使用VBA将所需数据格式化为所需的自定义数字格式。
此示例的原始数据由销售团队数据组成。原始数据包含名称,产品ID,产品价格,已售数量和总销售额。
在运行宏之前,必须在P列中指定自定义数字格式,并在Q列中指定要应用自定义数字格式的列号。单击“格式”按钮以运行“格式”宏。
宏将根据指定的自定义数字格式更改给定数据的格式。
逻辑解释
此宏从P列中选择数字格式,并将该数字格式分配给Q列中由列号指定的列。在此宏中,我们使用了两个DO UNTIL循环进行循环。首先使用DO UNTIL循环进行循环,直到将所有数字格式应用于列为止。第二个DO UNTIL循环用于查找所有指定的不同列号,并用逗号(,)分隔。
代码说明
strCol = Left(txt,InStr(txt,“,”)-1)
上面的代码用于将列号与包含所有以逗号(,)分隔的列号的字符串分开。
Columns(CInt(strCol))。NumberFormat = wks.Cells(intRow,16).Value上面的代码用于将自定义数字格式应用于指定的列。
txt = Right(txt,Len(txt)-InStr(txt,“,”))
从定义的字符串中删除列号后,以上代码用于分隔遗漏的字符串。
请遵循以下代码
如果您喜欢此博客,请在Facebook和Facebook上与您的朋友分享。
[#_GoBack] ##我们希望收到您的来信,请让我们知道如何改善我们的工作并为您做得更好。写信给我们[email protected]
Option Explicit Sub Formatting() 'Declaring variables Dim wks As Worksheet Dim intRow As Long Dim strCol As String Dim txt As String 'Initializing the variables Set wks = Worksheets("Format") intRow = 4 'Looping in 16th column until empty value is found Do Until IsEmpty(wks.Cells(intRow, 16)) 'Assigning the value of custom number format txt = wks.Cells(intRow, 17) 'Looping and finding all the column number separated by comma(,) Do Until InStr(txt, ",") = 0 'Getting the column number strCol = Left(txt, InStr(txt, ",") - 1) 'Assigning the number format Columns(CInt(strCol)).NumberFormat = wks.Cells(intRow, 16).Value 'Truncating the string for finding the next column number after the comma(,) txt = Right(txt, Len(txt) - InStr(txt, ",")) Loop 'Assigning the number format Columns(CInt(txt)).NumberFormat = wks.Cells(intRow, 16).Value intRow = intRow + 1 Loop End Sub