【问题标题】:How to copy required rows of data from one excel sheet to another based on a condition?如何根据条件将所需的数据行从一个excel表复制到另一个?
【发布时间】:2010-10-11 05:06:05
【问题描述】:

我有一个包含大约 7k 行数据的 Excel 表,我需要根据列(组名)将该数据分成三个不同的表。

所以,我需要根据组名(有 3 个组)将数据分成三个不同的工作表。

请让我知道这件事......

提前谢谢...

卡尔

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    你可以尝试这样的事情,把它放在一个宏中并按需运行

    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
    

    【讨论】:

    • thanks asstander...我执行了上面的宏...但是我只能看到源表的第一行被复制到其他表(sheet2,sheet3)..可能是什么问题? ?
    • 如果调试宏,usedRange.Rows.Count的值是多少?
    猜你喜欢
    • 2018-06-19
    • 2016-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多