|
本帖最后由 bird2751 于 2018-9-6 20:34 编辑
我用的是Excel 2010。假设有两个不同路径的工作簿,比如一个是D:\D.xlsm,一个是E:\E.xlsm,现在想把表格D里的一些数据复制到表格E里,如图:
现在的问题是,表格D的有效行数并不固定,可能会多两行或少两行,因此拷贝数据时需要先设个变量来读取有效行数,最后写出来的代码如下:
Private Sub CommandButton1_Click()
Dim shuju As Workbook
On Error Resume Next
Set shuju = Workbooks.Open("D:\D.xlsm")
Dim i As Long
i = shuju.Sheets("工作表").Range(shuju.Sheets("工作表").Cells(3, 2)).CurrentRegion.Rows.Count - 2
shuju.Sheets("工作表").Range(shuju.Sheets("工作表").Cells(3, 2), shuju.Sheets("工作表").Cells(i + 2, 2)).Copy ' 注:经考证,跨工作簿拷贝,range里一定要带上worksheet,所以不得不写得这么啰嗦
Range("B2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
在加入变量 i 之前,跨工作簿拷贝的指令是成功的,但是加入 i 之后就死活读不到数,不知道该如何解决?
另外还有个问题,能否在不打开D.xlsm的情况下读取数据?因为D.xlsm也比较复杂,每次打开关闭都要弹窗,实在很麻烦
|
|