返回列表 上一主題 發帖

[發問] 有關於迴圈sheets

[發問] 有關於迴圈sheets

請教各位大佬,我開了很多sheets,各有其名稱,從每一個sheets各複製固定的儲存格到第一個sheet,所以我想到用迴圈
不過卻遇到問題 fail.JPG
下列是我的程式碼,請問是哪邊出問題,或是有其他更好的方法可以完成這程式??
請各位大佬不吝賜教~謝謝~

    Private Sub CommandButton1_Click()
    Dim a As Integer
    For a = 2 To 5
        Sheets(a).Select
        Range(Cells(3, 2), Cells(5, 11)).Select
        Selection.Copy
        Sheets(1).Select
        Range(Cells(3, 2), Cells(5, 11)).Select
        ActiveSheet.Paste
    Next
    End Sub

補充一下~當然我是想要從第二個sheet開始將其資料依序貼到sheet1
因為在一開始要從sheet2的資料複製到sheet1就有問題

所以接下來的code並沒有修改

TOP

各位大大

上個廁所後..我就已經發現問題點了...
因為我上面的程式碼是寫在Microsoft Excel 物件的 sheet1 裡面
當我將程式碼放在模組內就可以正常work

但是我仍不明白為何要多一個步驟??
希望各位大佬能幫忙解答,謝謝

TOP

回復 2# a703130
不知道有沒有會錯意
  1. Private Sub CommandButton1_Click()
  2.     Dim a As Integer
  3.     For a = 2 To 5
  4.         With Sheets(a)
  5.         .Range(.Cells(3, 2), .Cells(5, 11)).Copy Sheets(1).Cells(3 + (a - 2) * 3, 2)
  6.         End With
  7.     Next
  8. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 3# a703130
你的程序在是sheet1物件模組
當Sheets(a).Select 後
執行Range(Cells(3, 2), Cells(5, 11)).Select
這裡的Range(Cells(3, 2), Cells(5, 11))是指sheet1工作表的範圍當然會出錯

你將程序移到一般模組 Range與Cells 是指作用中的工作表Sheets(a)範圍 所以不會有錯誤
Sheet1物件模組 如上樓 Hsieh            With Sheets(a)
                                     . Range(.Cells(3, 2), .Cells(5, 11)).....
               就是明那一工作表的範圍不易出錯

TOP

我了解意思了

Range(Cells(3, 2), Cells(5, 11)).Select
只是單純再sheet1裡面所選擇的
但是我的迴圈卻指定到了sheet(a)
難怪執行會有問題,也謝謝 Hsieh 大幫忙

TOP

        靜思自在 : 一個人不怕錯,就怕不改過,改過並不難。
返回列表 上一主題