iT邦幫忙

0

excel vba 複製問題求解

wsj 2020-08-29 17:54:582020 瀏覽
  • 分享至 

  • xImage

各位大大:
我想將檔案A.xls中sheet1的a1:g5複製到檔案B.xls中sheet2的c1:i5,請問如何寫出運算式,run vba時不會出現代碼9,超出範圍下限的狀況,謝謝!

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
ccenjor
iT邦大師 9 級 ‧ 2020-08-29 20:17:08
最佳解答

會出現這個問題一般是下列狀況具多:
1.沒有將活頁簿先存檔變成有固定名稱,而是用預設名稱無法抓到。
2.副檔名錯誤,該是2003以前版本是XLS,而2007以後是XLSX。
3.工作表名稱,SHEET/工作表沒對應到。

看更多先前的回應...收起先前的回應...
wsj iT邦新手 5 級 ‧ 2020-08-29 23:29:44 檢舉

大大,
我有試過,如下:
workbooks("A.xlsx").sheets("sheet1").range("a1:g5").copy destination := workbooks("B.xlsx").sheets("sheet2").range("c1:i5")
同樣出現陣列索引超出範圍,我所使用的是2019版本

wsj iT邦新手 5 級 ‧ 2020-08-29 23:45:35 檢舉

雖然值有copy過去,但最後還是顯示陣列索引超出範圍,該行呈現反黃線

wsj iT邦新手 5 級 ‧ 2020-08-30 09:24:25 檢舉

大大,
我找到了問題,將副檔名更正為xlsm,就可以順利執行了,感恩賜教!

ccenjor iT邦大師 9 級 ‧ 2020-08-30 19:25:12 檢舉

恭禧,我昨天也是碰到這個問題,存成XLSX,巨集就不見,一定要存成XLSM才可以,所以A應該為a.XLSM。

0
wrxue
iT邦好手 1 級 ‧ 2020-08-29 18:11:30
Sub AtoB()
    Windows("A.xls").Activate
    Sheets("sheet1").Select
    Range("A1:G5").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("B.xls").Activate
    Sheets("sheet2").Select
    Range("C1:I5").Select
    ActiveSheet.Paste
End Sub

看更多先前的回應...收起先前的回應...
wsj iT邦新手 5 級 ‧ 2020-08-29 23:17:06 檢舉

大大,
我有試過,
Sub AtoB()
Windows("A.xls").Activate
Sheets("sheet1").Select
Range("A1:G5").Select
Application.CutCopyMode = False
Selection.Copy
Windows("B.xls").Activate
Sheets("sheet2").Select
Range("C1:I5").Select
ActiveSheet.Paste
End Sub
結果也是出現代碼,陣列索引超出範圍

wsj iT邦新手 5 級 ‧ 2020-08-29 23:26:55 檢舉

大大,
我有試過,如下:
workbooks("A.xlsx").sheets("sheet1").range("a1:g5").copy destination := workbooks("B.xlsx").sheets("sheet2").range("c1:i5")
同樣出現陣列索引超出範圍

wsj iT邦新手 5 級 ‧ 2020-08-29 23:27:58 檢舉

大大,
我有試過,如下:
workbooks("A.xlsx").sheets("sheet1").range("a1:g5").copy destination := workbooks("B.xlsx").sheets("sheet2").range("c1:i5")
同樣出現陣列索引超出範圍

wrxue iT邦好手 1 級 ‧ 2020-08-30 07:38:18 檢舉

我的程式碼在我這跑是沒問題的!
你的副檔名是xls還是xlsx呢?這兩個不一樣喔!
請先確定你的副檔名為何,sheet名稱為何還有檔案名稱為何。
我看你自己試的程式碼跟你問題中的描述不盡相符(xls/xlsx或工作表1/sheet1)。

wsj iT邦新手 5 級 ‧ 2020-08-30 09:07:06 檢舉

我所使用的是2019版本

wsj iT邦新手 5 級 ‧ 2020-08-30 09:25:30 檢舉

感謝大大,謝謝!

wsj iT邦新手 5 級 ‧ 2020-08-30 10:41:16 檢舉

大大,
感謝提供程式,我還是用自己寫的更正,若是大大能把運算式再精簡點那就更好了,還是要再次感恩!

我要發表回答

立即登入回答