【发布时间】:2010-10-11 05:06:05
【问题描述】:
我有一个包含大约 7k 行数据的 Excel 表,我需要根据列(组名)将该数据分成三个不同的表。
所以,我需要根据组名(有 3 个组)将数据分成三个不同的工作表。
请让我知道这件事......
提前谢谢...
卡尔
【问题讨论】:
我有一个包含大约 7k 行数据的 Excel 表,我需要根据列(组名)将该数据分成三个不同的表。
所以,我需要根据组名(有 3 个组)将数据分成三个不同的工作表。
请让我知道这件事......
提前谢谢...
卡尔
【问题讨论】:
你可以尝试这样的事情,把它放在一个宏中并按需运行
Sub Macro1()
Dim rowCounter As Integer
Dim usedRange As Range
Dim sourceSheet As Worksheet, dest1 As Worksheet, dest2 As Worksheet, dest3 As Worksheet
Dim dest1Row As Integer, dest2Row As Integer, dest3Row As Integer
dest1Row = 1
dest2Row = 1
dest3Row = 1
Set sourceSheet = Sheets("Sheet1")
Set dest1 = Sheets("Sheet2")
Set dest2 = Sheets("Sheet3")
Set dest3 = Sheets("Sheet4")
Set usedRange = sourceSheet.usedRange
For rowCounter = 1 To usedRange.Rows.Count
If (usedRange(rowCounter, 1) = 1) Then
usedRange.Range(Cells(rowCounter, 1), Cells(rowCounter, usedRange.Columns.Count)).Copy dest1.Range("A" & dest1Row)
dest1Row = dest1Row + 1
ElseIf (usedRange(rowCounter, 1) = 2) Then
usedRange.Range(Cells(rowCounter, 1), Cells(rowCounter, usedRange.Columns.Count)).Copy dest2.Range("A" & dest2Row)
dest2Row = dest2Row + 1
ElseIf (usedRange(rowCounter, 1) = 3) Then
usedRange.Range(Cells(rowCounter, 1), Cells(rowCounter, usedRange.Columns.Count)).Copy dest3.Range("A" & dest3Row)
dest3Row = dest3Row + 1
End If
Next rowCounter
End Sub
【讨论】: