[算表] vba 選定範圍複製然後貼到選定的最後一列

看板Office作者 (老草莓)時間5年前 (2019/04/09 16:55), 編輯推噓0(0056)
留言56則, 2人參與, 5年前最新討論串1/1
軟體:excel 版本:2013 程式碼如下 Dim maxR As Long Dim sh As Worksheet Set sh = ActiveSheet maxR = 2 While sh.Cells(maxR, 1).Value <> "" maxR = maxR + 1 Wend maxR = maxR - 1 ref1 = "AP2:BT" & maxR   ‘→要複製的範圍 Selection.AutoFill Destination:=Range(ref1) =>錯誤點 MsgBox ("完成!") 一直找不到怎麼解決,懇請大大指點 ----- Sent from JPTT on my HMD Global TA-1052. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.68.34 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1554800141.A.C9B.html

04/09 17:07, 5年前 , 1F
看要先range.autofill到ap2:bt2,再從ap2:bt2
04/09 17:07, 1F

04/09 17:08, 5年前 , 2F
range.autofill 到range(ref1)
04/09 17:08, 2F

04/09 17:10, 5年前 , 3F
selection 改成range 嗎?
04/09 17:10, 3F

04/09 17:10, 5年前 , 4F
也可range.copy range(ref1),range.copy的range看要以
04/09 17:10, 4F

04/09 17:11, 5年前 , 5F
selection或是指定儲存格
04/09 17:11, 5F

04/09 17:12, 5年前 , 6F
可以selection或以range、cells來指定
04/09 17:12, 6F

04/09 17:13, 5年前 , 7F
因為我的列數可能會增加,所以希望能夠自動貼上所設定
04/09 17:13, 7F

04/09 17:13, 5年前 , 8F
第一列的公式,所以要判斷到最後一列再從第一列所設定
04/09 17:13, 8F

04/09 17:13, 5年前 , 9F
的公式向下貼上
04/09 17:13, 9F

04/09 17:15, 5年前 , 10F
是的,原po迴圈while..wend可以看的出來是想要判斷從儲存
04/09 17:15, 10F

04/09 17:16, 5年前 , 11F
格a2起判斷連續儲存格的最後一筆的列號
04/09 17:16, 11F

04/09 17:17, 5年前 , 12F
先說以這樣的迴圈是否是最後一列那不一定
04/09 17:17, 12F

04/09 17:17, 5年前 , 13F
就要看原po的資料是否是連續的了
04/09 17:17, 13F

04/09 17:18, 5年前 , 14F
ref1 ="ap2:bt " &maxR 這個有問題嗎?
04/09 17:18, 14F

04/09 17:19, 5年前 , 15F
這樣沒有問題,就是字串帶入到變數ref1
04/09 17:19, 15F

04/09 17:23, 5年前 , 16F
所以說,我錯誤點的地方要改成怎樣....我看不大懂
04/09 17:23, 16F

04/09 17:24, 5年前 , 17F
range.autofill就是公式的拖曳,拖曳怎麼拖呢,就是橫向或
04/09 17:24, 17F

04/09 17:24, 5年前 , 18F
對不起,我是上網自學的程度很低
04/09 17:24, 18F

04/09 17:25, 5年前 , 19F
縱向,也就是要先將selection autofill到ap2:bt2
04/09 17:25, 19F

04/09 17:25, 5年前 , 20F
接著從ap2:bt2再autofill到range(ref1)
04/09 17:25, 20F

04/09 17:29, 5年前 , 21F
也就是說autofill要執行二次,第一次看要橫向或縱向,第二
04/09 17:29, 21F

04/09 17:29, 5年前 , 22F
selection.autofill destination:=range("ap2:bt2")還
04/09 17:29, 22F

04/09 17:29, 5年前 , 23F
是錯
04/09 17:29, 23F

04/09 17:30, 5年前 , 24F
次就是縱向或橫向
04/09 17:30, 24F

04/09 17:31, 5年前 , 25F
selection的資料是什麼公式?
04/09 17:31, 25F

04/09 17:32, 5年前 , 26F
我測試selection內是公式是沒有錯誤訊息的
04/09 17:32, 26F

04/09 17:32, 5年前 , 27F
原文也都沒有寫selection是什麼資料,測試上我也只能任意
04/09 17:32, 27F

04/09 17:33, 5年前 , 28F
測試了,誰知道原po實際資料是什麼
04/09 17:33, 28F

04/09 17:34, 5年前 , 29F
ap2:bt2 是我寫進cells的公式
04/09 17:34, 29F

04/09 17:36, 5年前 , 30F
那selection是什麼(公式、值)呢?回文還是沒說,selection
04/09 17:36, 30F

04/09 17:36, 5年前 , 31F
是否在range(ap2:bt2)範圍內呢?
04/09 17:36, 31F

04/09 17:37, 5年前 , 32F
不好意思我不知道selection的作用是什麼,我只是複製
04/09 17:37, 32F

04/09 17:37, 5年前 , 33F
來使用的...
04/09 17:37, 33F

04/09 17:38, 5年前 , 34F
selection對回文者是個不明確儲存格
04/09 17:38, 34F

04/09 17:40, 5年前 , 35F
以原文來看selection應就是所選取的儲存格range
04/09 17:40, 35F

04/09 17:44, 5年前 , 36F
因是要range.autofill到range("ap2:bt2"),所以selection
04/09 17:44, 36F

04/09 17:44, 5年前 , 37F
所選取的儲存格就應會是ap2這個儲存格
04/09 17:44, 37F

04/09 17:45, 5年前 , 38F
假設所選取的儲存格是ao2的話,那range.autofill就會是
04/09 17:45, 38F

04/09 17:46, 5年前 , 39F
range("ao2:bt2")
04/09 17:46, 39F

04/09 17:50, 5年前 , 40F

04/09 17:52, 5年前 , 41F
range要指定儲存格字串的
04/09 17:52, 41F

04/09 17:52, 5年前 , 42F
range.autofill destination:=range(ref1)出現錯誤
04/09 17:52, 42F

04/09 17:52, 5年前 , 43F
當然會出錯
04/09 17:52, 43F

04/09 17:53, 5年前 , 44F
我打range.autofill只是要讓原po再google用的
04/09 17:53, 44F

04/09 17:54, 5年前 , 45F
微軟microsoft docs也就只是range.autofill這樣關鍵字
04/09 17:54, 45F

04/09 17:56, 5年前 , 46F
我回文我沒有辦法知道selection是那個儲存格,也就沒辦法
04/09 17:56, 46F

04/09 17:56, 5年前 , 47F
就打range("ap2").autofill...這樣
04/09 17:56, 47F

04/09 17:57, 5年前 , 48F

04/09 17:57, 5年前 , 49F
且destination所指定不就是range(ref1),帶的就是字串
04/09 17:57, 49F

04/09 17:58, 5年前 , 50F
謝謝s大 這樣已經成功跑完了也沒問題
04/09 17:58, 50F

04/09 18:00, 5年前 , 51F
改成range("ap2 :bt2 ).auto fill destination:=range
04/09 18:00, 51F

04/09 18:00, 5年前 , 52F
(ref1)這樣可以了
04/09 18:00, 52F

04/09 18:01, 5年前 , 53F
這樣一定出錯
04/09 18:01, 53F

04/09 18:02, 5年前 , 54F
1.range()括號內要雙引號 2.是autofill不是auto fill
04/09 18:02, 54F

04/09 18:03, 5年前 , 55F
^^^^^^指的是"儲存格字串"
04/09 18:03, 55F

04/09 18:07, 5年前 , 56F
修改好了,有試過增加列數公式也都能貼上了,謝謝s大
04/09 18:07, 56F
文章代碼(AID): #1Sh5uDoR (Office)
文章代碼(AID): #1Sh5uDoR (Office)