2009-11-20 96 views

回答

0

你可以嘗試這樣的事情,把它放在一個宏觀和需求

運行
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 
+0

非常感謝...... 我執行了上面的宏...但是我只能看到複製了源表格的第一行 到其他工作表(sheet2,sheet3).. 可能是什麼問題? – kar 2009-11-20 07:58:27

+0

如果您調試宏,usedRange.Rows.Count的值是什麼? – 2009-11-20 08:27:40

相關問題