|在本文中,我们将创建一个宏,以使用VBA将所需数据格式化为所需的自定义数字格式。

此示例的原始数据由销售团队数据组成。原始数据包含名称,产品ID,产品价格,已售数量和总销售额。

ArrowRawData

在运行宏之前,必须在P列中指定自定义数字格式,并在Q列中指定要应用自定义数字格式的列号。单击“格式”按钮以运行“格式”宏。

宏将根据指定的自定义数字格式更改给定数据的格式。

ArrowAfterRunningMacro

逻辑解释

此宏从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