返回列表 上一主題 發帖

[發問] 多張工作表資料整合於總表

回復 1# missbb

試試看
        For Each ws In Worksheets
        If ws.Name <> "Summary" Then
            ws.Range("B4").Copy
            aa = Sheets("summary").Range("A65536").End(xlUp).Row + 1
            Sheets("summary").Paste Sheets("summary").Range("A" & aa, "A" & aa + 29)
        End If
    Next ws

TOP

回復 8# missbb


    當複製的來源只有一個儲存格,內存只會把這個儲存格的內容當成一個字串,所以它會把這個字串分成N個字串分別複製到目的的儲存格,
但若有超過一個以上的來源儲存格,則會成為陣列,所以必須成為
     目的儲存格的範圍數量(Count)=來源儲存格的範圍數量(Count)
  1. Sub move()
  2. For Each ws In Worksheets
  3.     ll = ws.Name
  4.         If ws.Name <> "summary" Then
  5.             範圍數量 = ws.Range("B4", ws.Range("B65536").End(xlUp).Address).Count
  6.             範圍陣列內容 = ws.Range("B4", ws.Range("B65536").End(xlUp).Address)'使其成為陣列
  7.             Sheets("summary").Range("A65536").End(xlUp).Offset(1).Resize(範圍數量) = 範圍陣列內容
  8.         End If
  9.     Next
  10. End Sub
複製代碼

TOP

回復 10# missbb

我在9樓就有解釋給你了,單一有單一的做法,範圍有範圍的做法,單一不一定能套用在範圍
    Sub move()
For Each ws In Worksheets
    ll = ws.Name
        If ws.Name <> "summary" Then
            範圍數量 = ws.Range("B4", ws.Range("B65536").End(xlUp).Address).Count
            範圍陣列內容 = ws.Range("B4", ws.Range("B65536").End(xlUp).Address) '使其成為陣列
            For Each Rng In 範圍陣列內容
                Sheets("summary").Range("A65536").End(xlUp).Offset(1).Resize(30) = Rng
            Next
        End If
    Next
End Sub

TOP

        靜思自在 : 心中常存善解、包容、感思、知足、惜福。
返回列表 上一主題