[問題] Excel VBA range包cell且用變數

看板Office作者 (不死kobe)時間6年前 (2019/01/01 14:39), 6年前編輯推噓0(0020)
留言20則, 2人參與, 6年前最新討論串1/1
軟體: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

01/01 14:53, 6年前 , 1F
嗎?
01/01 14:53, 1F

01/01 14:55, 6年前 , 2F
如果巨集是寫在工作表內而產生的話,可改寫至模組
01/01 14:55, 2F
並不會有錯誤代碼耶 https://imgur.com/I173lv9
※ 編輯: KOBEretire16 (120.114.240.1), 01/01/2019 15:02:53

01/01 14:57, 6年前 , 3F
會產生該錯誤表示所選取的範圍不在activate作用中或select
01/01 14:57, 3F

01/01 14:58, 6年前 , 4F
選取中。因此如果不改以模組寫的話,可於range.select上方
01/01 14:58, 4F

01/01 14:59, 6年前 , 5F
加上worksheet.activate或select
01/01 14:59, 5F

01/01 15:00, 6年前 , 6F
如加了還是產生該錯誤的話,則需在range.select前方加上
01/01 15:00, 6F

01/01 15:01, 6年前 , 7F
worksheets(工作表名稱).range.select
01/01 15:01, 7F
如果在表單裡面執行的話會有400的錯誤代碼 https://imgur.com/YA7NR2y
※ 編輯: KOBEretire16 (120.114.240.1), 01/01/2019 15:11:09

01/01 15:10, 6年前 , 8F
如果沒錯誤代碼的話,貼上全部巨集碼,應會比較清楚
01/01 15:10, 8F
我放上去了,有稍微精簡過 https://pastebin.com/igS6EpHC ※ 編輯: KOBEretire16 (120.114.240.1), 01/01/2019 15:22:27

01/01 15:29, 6年前 , 9F
巨集放在那裡執行的?thisworkbook?工作表?模組?
01/01 15:29, 9F

01/01 15:32, 6年前 , 10F
thisworkbook
01/01 15:32, 10F

01/01 15:33, 6年前 , 11F
Worksheet.Active.Range(Cells(col, mul ....
01/01 15:33, 11F

01/01 15:33, 6年前 , 12F
是worksheets(工作表名稱,如"1").activate或select
01/01 15:33, 12F

01/01 15:33, 6年前 , 13F
下一行是range(cells(col,mul...)
01/01 15:33, 13F

01/01 15:34, 6年前 , 14F
也可以是sheets("1").activate或select
01/01 15:34, 14F

01/01 15:35, 6年前 , 15F
KeepData傳值mul的方面為0,0*5=0,cells欄方面並無該欄號
01/01 15:35, 15F

01/01 15:35, 6年前 , 16F
如指的是a欄的話,要+1
01/01 15:35, 16F

01/01 15:38, 6年前 , 17F
於thisworkbook內
01/01 15:38, 17F

01/01 15:38, 6年前 , 18F
執行程序All並無產生錯誤
01/01 15:38, 18F

01/01 15:39, 6年前 , 19F
因寫於thisworkbook,回文提worksheet.activeate或select
01/01 15:39, 19F

01/01 15:40, 6年前 , 20F
就視執行程序時所在的工作表,可寫可不寫
01/01 15:40, 20F
原來問題是出在傳0進來...我一直沒注意到真是抱歉! ※ 編輯: KOBEretire16 (120.114.240.1), 01/01/2019 15:52:35
文章代碼(AID): #1SAmiw7h (Office)
文章代碼(AID): #1SAmiw7h (Office)