看板 Office 關於我們 聯絡資訊
軟體: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
soyoso: 看要先range.autofill到ap2:bt2,再從ap2:bt2 04/09 17:07
soyoso: range.autofill 到range(ref1) 04/09 17:08
bbbsss1986: selection 改成range 嗎? 04/09 17:10
soyoso: 也可range.copy range(ref1),range.copy的range看要以 04/09 17:10
soyoso: selection或是指定儲存格 04/09 17:11
soyoso: 可以selection或以range、cells來指定 04/09 17:12
bbbsss1986: 因為我的列數可能會增加,所以希望能夠自動貼上所設定 04/09 17:13
bbbsss1986: 第一列的公式,所以要判斷到最後一列再從第一列所設定 04/09 17:13
bbbsss1986: 的公式向下貼上 04/09 17:13
soyoso: 是的,原po迴圈while..wend可以看的出來是想要判斷從儲存 04/09 17:15
soyoso: 格a2起判斷連續儲存格的最後一筆的列號 04/09 17:16
soyoso: 先說以這樣的迴圈是否是最後一列那不一定 04/09 17:17
soyoso: 就要看原po的資料是否是連續的了 04/09 17:17
bbbsss1986: ref1 ="ap2:bt " &maxR 這個有問題嗎? 04/09 17:18
soyoso: 這樣沒有問題,就是字串帶入到變數ref1 04/09 17:19
bbbsss1986: 所以說,我錯誤點的地方要改成怎樣....我看不大懂 04/09 17:23
soyoso: range.autofill就是公式的拖曳,拖曳怎麼拖呢,就是橫向或 04/09 17:24
bbbsss1986: 對不起,我是上網自學的程度很低 04/09 17:24
soyoso: 縱向,也就是要先將selection autofill到ap2:bt2 04/09 17:25
soyoso: 接著從ap2:bt2再autofill到range(ref1) 04/09 17:25
soyoso: 也就是說autofill要執行二次,第一次看要橫向或縱向,第二 04/09 17:29
bbbsss1986: selection.autofill destination:=range("ap2:bt2")還 04/09 17:29
bbbsss1986: 是錯 04/09 17:29
soyoso: 次就是縱向或橫向 04/09 17:30
soyoso: selection的資料是什麼公式? 04/09 17:31
soyoso: 我測試selection內是公式是沒有錯誤訊息的 04/09 17:32
soyoso: 原文也都沒有寫selection是什麼資料,測試上我也只能任意 04/09 17:32
soyoso: 測試了,誰知道原po實際資料是什麼 04/09 17:33
bbbsss1986: ap2:bt2 是我寫進cells的公式 04/09 17:34
soyoso: 那selection是什麼(公式、值)呢?回文還是沒說,selection 04/09 17:36
soyoso: 是否在range(ap2:bt2)範圍內呢? 04/09 17:36
bbbsss1986: 不好意思我不知道selection的作用是什麼,我只是複製 04/09 17:37
bbbsss1986: 來使用的... 04/09 17:37
soyoso: selection對回文者是個不明確儲存格 04/09 17:38
soyoso: 以原文來看selection應就是所選取的儲存格range 04/09 17:40
soyoso: 因是要range.autofill到range("ap2:bt2"),所以selection 04/09 17:44
soyoso: 所選取的儲存格就應會是ap2這個儲存格 04/09 17:44
soyoso: 假設所選取的儲存格是ao2的話,那range.autofill就會是 04/09 17:45
soyoso: range("ao2:bt2") 04/09 17:46
bbbsss1986: http://i.imgur.com/qwhoFug.jpg 04/09 17:50
soyoso: range要指定儲存格字串的 04/09 17:52
bbbsss1986: range.autofill destination:=range(ref1)出現錯誤 04/09 17:52
soyoso: 當然會出錯 04/09 17:52
soyoso: 我打range.autofill只是要讓原po再google用的 04/09 17:53
soyoso: 微軟microsoft docs也就只是range.autofill這樣關鍵字 04/09 17:54
soyoso: 我回文我沒有辦法知道selection是那個儲存格,也就沒辦法 04/09 17:56
soyoso: 就打range("ap2").autofill...這樣 04/09 17:56
bbbsss1986: http://i.imgur.com/RRTSau7.jpg 04/09 17:57
soyoso: 且destination所指定不就是range(ref1),帶的就是字串 04/09 17:57
bbbsss1986: 謝謝s大 這樣已經成功跑完了也沒問題 04/09 17:58
bbbsss1986: 改成range("ap2 :bt2 ).auto fill destination:=range 04/09 18:00
bbbsss1986: (ref1)這樣可以了 04/09 18:00
soyoso: 這樣一定出錯 04/09 18:01
soyoso: 1.range()括號內要雙引號 2.是autofill不是auto fill 04/09 18:02
soyoso: ^^^^^^指的是"儲存格字串" 04/09 18:03
bbbsss1986: 修改好了,有試過增加列數公式也都能貼上了,謝謝s大 04/09 18:07