作者KOBEretire16 (不死kobe)
看板Office
標題[問題] Excel VBA range包cell且用變數
時間Tue Jan 1 14:39:51 2019
軟體:Excel
版本:2013
各位強大的版友好還有2019新年快樂~~
目前小弟我想要將某些欄位用range來圈選
然後想將裡面的內容複製到同一個檔案但不同sheet中
以下為部分程式碼
row, col 都是我傳進去的參數
Range(Cells(row, col), Cells(row, col+4)).Select
Range("F11:J12").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("2").Select
Range("A1:E1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
但在一開始選取那邊就會出現
"應用程式或物件上錯誤"
請問我該怎麼修改呢?
先感謝各路大神幫忙了~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.114.240.1
※ 文章網址: https://www.ptt.cc/bbs/Office/M.1546324794.A.1EB.html
※ 編輯: KOBEretire16 (120.114.240.1), 01/01/2019 14:41:49
→ soyoso: 如果巨集是寫在工作表內而產生的話,可改寫至模組 01/01 14:55
並不會有錯誤代碼耶
https://imgur.com/I173lv9 ※ 編輯: KOBEretire16 (120.114.240.1), 01/01/2019 15:02:53
→ soyoso: 會產生該錯誤表示所選取的範圍不在activate作用中或select 01/01 14:57
→ soyoso: 選取中。因此如果不改以模組寫的話,可於range.select上方 01/01 14:58
→ soyoso: 加上worksheet.activate或select 01/01 14:59
→ soyoso: 如加了還是產生該錯誤的話,則需在range.select前方加上 01/01 15:00
→ soyoso: worksheets(工作表名稱).range.select 01/01 15:01
如果在表單裡面執行的話會有400的錯誤代碼
https://imgur.com/YA7NR2y ※ 編輯: KOBEretire16 (120.114.240.1), 01/01/2019 15:11:09
→ soyoso: 如果沒錯誤代碼的話,貼上全部巨集碼,應會比較清楚 01/01 15:10
我放上去了,有稍微精簡過
https://pastebin.com/igS6EpHC ※ 編輯: KOBEretire16 (120.114.240.1), 01/01/2019 15:22:27
→ soyoso: 巨集放在那裡執行的?thisworkbook?工作表?模組? 01/01 15:29
→ KOBEretire16: thisworkbook 01/01 15:32
→ soyoso: Worksheet.Active.Range(Cells(col, mul .... 01/01 15:33
→ soyoso: 是worksheets(工作表名稱,如"1").activate或select 01/01 15:33
→ soyoso: 下一行是range(cells(col,mul...) 01/01 15:33
→ soyoso: 也可以是sheets("1").activate或select 01/01 15:34
→ soyoso: KeepData傳值mul的方面為0,0*5=0,cells欄方面並無該欄號 01/01 15:35
→ soyoso: 如指的是a欄的話,要+1 01/01 15:35
→ soyoso: 執行程序All並無產生錯誤 01/01 15:38
→ soyoso: 因寫於thisworkbook,回文提worksheet.activeate或select 01/01 15:39
→ soyoso: 就視執行程序時所在的工作表,可寫可不寫 01/01 15:40
原來問題是出在傳0進來...我一直沒注意到真是抱歉!
※ 編輯: KOBEretire16 (120.114.240.1), 01/01/2019 15:52:35