|
本帖最后由 boyfat 于 2017-3-13 13:41 编辑
现在有A文件与B文件,现需要在B文件里的Sheet2里自动导入A文件Sheet1里面A列到D列的内容,格式排版一样,而A文件里的Sheet1里面的内容会更改与添加,因此B文件的Sheet2每次打开都需要自行检查更新。
A文件Sheet1
一开始是使用数据导入功能实现的,现在因为某种原因,不能使用数据导入功能,
就改为用 =[A.xlsx]Sheet1!$A:$A 对对应列进行复制也可实现,但由于实际文件内容过万条,导致每次打开都差不多要死机
自己曾试过写代码来实现功能,当Sheet1与Sheet2在同一个文件里时可实现新增功能,但把它们分开在不同文件时,在定义变量加上文件名时候就出错
Private Sub CommandButton1_Click()
lr = Sheet2.[a65536].End(3).Row + 1
lt = [A.xlsx].Sheet1.[a65536].End(3).Row
If lr > lt Then
lt = lr
End If
[A.xlsx].Sheet1.Range(("A" & lr), ("D" & lt)).Copy
Sheet2.Range("A" & lr).PasteSpecial Paste:=xlPasteValues, Transpose:=False
End Sub
请教各位大侠,如何利用宏简单实现该功能?
本帖最后由 wenzili 于 2017-3-13 16:07 编辑
Private Sub CommandButton1_Click()
Dim dadaatod As Variant
Dim rg As Range
Dim wb As Workbook
Dim n As Single
Set wb = Workbooks("A.xlsx")
Set rg = wb.Worksheets("sheet1").UsedRange
n = rg.rows.Count
Set rg = wb.Worksheets("sheet1").Range("a1").Resize(n, 4)
dadaatod = rg.Value
Set rg = ThisWorkbook.Sheets("sheet1").Range("a1")
Set rg = rg.Resize(n,4)
rg.Value = dadaatod
End Sub
数据多,用数组应该最快。
行变化,列固定。没来的急测试。看看行不?
|
|