返回列表 上一主題 發帖

從一個Workbook抄寫資料到另一個Workbook

從一個Workbook抄寫資料到另一個Workbook

有兩個Workbook,稱之為A和B
資料在B
現在嘗試在A的VBA開啓B,運算B的macro,名為test
即
  1. workbooks.open thisworkbook.path & "\B.xls"
  2. application.run worbooks("'B.xls'!test")
複製代碼
到這裡沒有問題
成功開啓後
B的vba找出相關位置及抄寫,以range A1為例
  1. sub test()
  2. with sheet1
  3. .range(.cells(1,1),.cells(1,1).end(xldown).end(xltoright).address).copy workbooks("A.xls").sheet1.range("A1")
  4. end sub
複製代碼
在這裡它出現了error 438 物件不支援此屬性或方法
不知那裡錯了
謝謝各位解答
80 字節以內
不支持自定義 Discuz! 代碼

回復 1# FAlonso


先問一點點資料,
為何要執行 B 的 vba 才作抄寫的動作,
不由 A 內的 vba 全程執行?

TOP

回復 1# FAlonso

A.xls的程式碼
  1. Sub Run_B_macro()
  2. Workbooks.Open ThisWorkbook.Path & "\B.xls"
  3. Application.Run "B.xls!test"
  4. End Sub
複製代碼
B.xls的程式碼
  1. Sub test()
  2. With Sheets(1)
  3. .Range(.Range(.Cells(1, 1), .Cells(1, 1).End(xlDown)), .Range(.Cells(1, 1), .Cells(1, 1).End(xlDown)).End(xlToRight)).Copy Workbooks("A.xls").Sheets(1).Range("A1")
  4. End With
  5. End Sub
複製代碼
學海無涯_不恥下問

TOP

何不乾脆用usedrange
  1. Sub test()
  2. With Sheets(1)
  3. .UsedRange.Copy Workbooks("A.xls").Sheets(1).Range("A1")
  4. End With
  5. End Sub
複製代碼

TOP

        靜思自在 : 地上種了菜,就不易長草;心中有善,就不易生惡。
返回列表 上一主題