請問EXCEL VBA跨頁複製或取資料的問題

請教前輩

如標題,我想要在VBA中跨頁複製其他sheet的資料

例如

我想在Sheet2中新增一個控制按鍵,當每次按下這個按鍵時

皆會將Sheet1的第A到第M行複製、並貼到Sheet2中的第A到M行

VBA內容如下:

Sheets("Sheet1").Select
Columns("A:M").Select
Selection.Copy
Sheets("Sheet2").Select
ActiveSheet.Paste

可是每次都會出現錯誤在 Columns("A:M").Select 的地方

但是我又不知道為什麼錯誤@@

我有試過使用其他方法,例如

Sheets("Sheet1").Select
ID = Cells(1, 1).Value
Sheets("Sheet2").Select
Cells(2, 2) = ID

但是第二種方法,會變成把Sheet2的(1,1)複製到Sheet2的(2,2)

而不是把Sheet1的(1,1)複製到Sheet2的(2,2)

麻煩各位高手教一下阿,這個問題我已經想了一個多禮拜了@@

謝謝


不曉得你知不知道有巨集錄製功能?

你這樣基本的VBA 不用看書就能知道怎樣寫
kikali wrote:
可是每次都會出現錯誤在 Columns("A:M").Select 的地方...(恕刪)

Sheet 要先 .Activate,sheet 裡面的物件下.Select 才不會出錯

glenn wrote:
不曉得你知不知道有巨集錄製功能?
你這樣基本的VBA 不用看書就能知道怎樣寫...(恕刪)

+1

這樣是很好的入門,進入障礙降低很多

如果有時間,瀏覽一下Excel的object model,很有趣歐


glenn wrote:

不曉得你知不知道有...(恕刪)


我就是使用錄製的結果出現如同第一段的程式...

結果就出現 Class Range Select方法失敗@@...


Wei_1144 wrote:

Sheet 要先 ...(恕刪)


不好意思再問詳細一點,我改成

Sheet1.Activate
Sheets("Sheet1").Select
Columns("A:M").Select
Selection.Copy

Sheet2.Activate
Sheets("Sheet2").Select
ActiveSheet.Paste

或是

Sheets("Sheet1").Activate
Sheets("Sheet1").Select
Columns("A:M").Select
Selection.Copy

Sheets("Sheet2").Activate
Sheets("Sheet2").Select
ActiveSheet.Paste

都還是會出現Class Range Select方法失敗 = =

我有上網查EXCAL VBA的用法,也有看到說要使用.Activate

但是奇怪...怎麼試都會出現那個錯誤

是不是我程式的流程哪裡有錯誤呢

kikali wrote:
Sheet1.Activate...(恕刪)

Sheets("Sheet1").Activate
Sheets("Sheet1").Select
Columns("A:M").Select
Selection.Copy

With Sheets("Sheet2")
.Paste .Range("A1")
End With


如果有時間,瀏覽一下Excel的object model,對你會很有幫助
Wei_1144 wrote:

Sheets("S...(恕刪)


謝謝大大的回覆

不過好奇怪,我貼上去還是會出現錯誤

阿阿阿~我實在是沒有EXCEL VBA的天份

還是因為我的是2003版本的關係呢

另外請問您說的excel object model在哪裡可以看呢

我連Microsoft Office網頁都跑去逛了結果還是找不到我想要的東西 = ="

謝謝大大的指導

我找錯誤說明那邊有滿多的資料的

已經可以了!
請問大大後來怎麽解決呢?

我也遇到同樣的問題~
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!