【发布时间】:2018-03-10 18:55:44
【问题描述】:
我想编写一个宏,将选定范围的单元格从一个 Excel 文件复制到另一个。我尝试了该代码,但它不起作用。我看到的唯一动作是打开了 wbk 和 wbk 1 工作簿,但没有执行其余代码,所以我无法复制我需要的内容。有什么想法有什么问题吗?
Sub new()
Dim wbk As Workbook
Dim wbk1 As Workbook
Set wbk = Workbooks.Open("C:\Users\Marcin\Desktop\plik zrodkowy.xlsm")
Set wbk1 = Workbooks.Open("C:\Users\Marcin\Desktop\Zeszyt2.xlsm")
' now you can manipulate the data in the workbook anyway you want, e.g. '
Dim x, y As Variant
x = wbk.Worksheets("Sheet1").Range(Cells(1, 1), Cells(13, 2))
y = wbk1.Worksheets("Sheet1").Range(Cells(1, 20), Cells(13, 23))
【问题讨论】:
-
您的代码只是打开两个工作簿并从中读取一些数据。你到底想做什么?
-
@Marcin: 声明
Dim x, y As Variant并不是你想象的那样:变量y被显式声明为 Variant,但变量x默认 为变体,因为没有声明变量x的变量类型。这是 VBA,它不同于...如果您要执行以下操作Dim x, y As Double然后y是“双”类型,x仍然是一个变体:-) 正确的方法是Dim x As Variant, y As Variant