返回列表 上一主題 發帖

從一個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

        靜思自在 : 【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表 上一主題