我正在尝试构建一个新代码,每次数据组更改时,该代码都会复制并插入标题列(从数据的第1行)到列表中。每个分组的大小不同,大小从一个月到下一个月不等。为了进一步复杂化,分组的名称可以改变。例如,我需要代码来打破这样的列表:
Header
Corporate
Corporate
Corporate
Insert header
Financial
Financial
Insert header
Public
etc
数据需要保留在同一张纸上,因此无需将数据移动到任何地方
到目前为止,我已经想到了类似的内容,但不知道使用正确的语法以使其正常运行:
Do forever
‘stop at the end
If group_cellvalue(vArraycounter) = “” then leave
Endif
vArraycounter = vArraycounter + 1
‘test the current group against that in the previous row if different, insert
'header
If group_cellvalue((vArraycounter) <> group_cellvalue((vArraycounter - 1 )
then
InsertRow
InsertHeadingText
'Increment counter to get back on track
vArraycounter = vArraycounter + ?
Endif
End For
非常感谢任何提示或建议:)
答案 0 :(得分:0)
假设:始终会有一个初始列标题;初始列标题下面的值没有间隙。
然后下面的代码是一个起始点。将其粘贴到模块中并调整Test
子,使其指向初始列标题的位置。
Option Explicit
Public Sub Test()
Headerize Sheet1.Range("A1")
End Sub
Public Sub Headerize(ByVal prngFirstHeader As Excel.Range)
Dim rngScan As Excel.Range
Set rngScan = prngFirstHeader.Cells(3, 1)
Do Until IsEmpty(rngScan.Value)
If rngScan.Value <> rngScan.Cells(0, 1).Value Then
prngFirstHeader.Copy
rngScan.Insert Shift:=XlInsertShiftDirection.xlShiftDown
End If
Set rngScan = rngScan.Cells(2, 1)
Loop
Set rngScan = Nothing
End Sub