Re: [問題] selection.paste不能用?

看板Office作者 (Smokeless Fire)時間5年前 (2019/03/05 18:39), 5年前編輯推噓0(009)
留言9則, 2人參與, 5年前最新討論串2/2 (看更多)
※ 引述《aljinn (Smokeless Fire)》之銘言: : (若是和其他不同軟體互動之問題 請記得一併填寫) : 軟體:Office 365 Word : 這問題應該很弱…不過我不會寫程式只好來求教 XD : 這麼簡單的巨集 : Selection.Copy : Selection.EndKey Unit:=wdStory : Selection.PasteAndFormat (wdFormatOriginalFormatting) : Selection.HomeKey Unit:=wdStory : 但是第三行Selection.Paste會被說錯誤4605「此指令未提供」是怎麼回事? 經過soyoso大大回應我又查詢和測試了一下 相關討論很少,但又看到一兩篇相同/類似症狀的 官方給的建議幾乎都沒用(測不出同樣情況、認定是其他軟體干擾等等) 有人說什麼也沒做後來忽然就又能用了,原因依舊不明 但我自己試一下發現很奇怪 如果把第一句Selection.Copy拿掉,自己先copy好再執行後面指令就可以 粗略實驗幾次,感覺似乎是Selection.Copy和Paste系列全部指令會衝突? 這應該不是原本就存在的邏輯?而且以前不會啊(至少我改用365之前沒遇到過) 除了想再問問有沒有人知道原因 也想請教如果無法直接解決的話…有沒有繞過的辦法? 例如把Selection改成別的expression?(我其實完全不會VBA Orz) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.242.62.74 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1551782379.A.D6E.html ※ 編輯: aljinn (27.242.62.74), 03/05/2019 18:39:59

03/05 19:11, 5年前 , 1F
那如改以selection.range.copy的方式是否有機會達成呢
03/05 19:11, 1F

03/05 19:26, 5年前 , 2F
如果還是不行的話,先宣告個變數(假設是r)
03/05 19:26, 2F

03/05 19:26, 5年前 , 3F
dim r as range
03/05 19:26, 3F

03/05 19:26, 5年前 , 4F
set r = selection.range
03/05 19:26, 4F

03/05 19:27, 5年前 , 5F
selection.endkey ...
03/05 19:27, 5F

03/05 19:27, 5年前 , 6F
selection.formattedtext = r
03/05 19:27, 6F

03/05 19:27, 5年前 , 7F
selection.homekey ..
03/05 19:27, 7F

03/05 19:28, 5年前 , 8F
這樣就沒使用到copy的部分了
03/05 19:28, 8F

03/05 20:16, 5年前 , 9F
成功了 @@ 感謝soyoso大大 雖然問題點依舊不明 XDDD
03/05 20:16, 9F
文章代碼(AID): #1SVb7hrk (Office)
文章代碼(AID): #1SVb7hrk (Office)