基于类别的vba拆分列表
我有一个简单的excel列表,其中的数据可以分为三类(项目、活动和计划) 使用vba,我希望拆分列表,使其首先显示项目,然后换行并重复标题以显示活动,然后换行并重复标题以显示“全部在1”工作表中的计划 范例基于类别的vba拆分列表,vba,excel,Vba,Excel,我有一个简单的excel列表,其中的数据可以分为三类(项目、活动和计划) 使用vba,我希望拆分列表,使其首先显示项目,然后换行并重复标题以显示活动,然后换行并重复标题以显示“全部在1”工作表中的计划 范例 Description Type Project a project Project b project Maintenance a activity Project c project Initiative 1 initiative
Description Type
Project a project
Project b project
Maintenance a activity
Project c project
Initiative 1 initiative
分成
Description Type
Project a project
Project b project
Project c project
Description Type
Maintenance a activity
Description Type
Initiative 1 initiative
有没有VBA代码来实现这一点
问候
Geert这需要一个简单的循环函数来检查项目类型并将其写入另一个表中。假设Sheet1是原始列表所在的位置,Sheet2是新列表所在的位置,则可以实现类似以下的功能。您可以通过在第一列上使用类似counta的工作表函数来获取行数。此函数将在主子程序中运行,为ItemType输入“项目”、“活动”等。对于计数器,您可以获取CopyVals的返回值,并在每次返回时将其反馈
Function CopyVals(ItemType As String, counter As Integer)
For j = 2 To numRows + 1
Sheet2.Cells(counter, 1) = Sheet1.Cells(1, 1) 'Write a header line
Sheet2.Cells(counter, 2) = Sheet1.Cells(1, 2)
counter = counter + 1
If Sheet1.Cells(j, 2) = ItemType Then 'Copy items into new list
Sheet2.Cells(counter, 1) = Sheet1.Cells(j, 1)
Sheet2.Cells(counter, 2) = Sheet1.Cells(j, 2)
counter = counter + 1
End If
Next j
counter = counter + 1 'Blank line in between
CopyVals = counter 'Return counter value
End Function
欢迎来到SO,请将您的评论放在评论框中,而不是答案框中。转到下面的链接,阅读所有关于“询问”和“回答”的内容