不同文件夹,两个excel工作簿,用vba同步

a文件夹是a工作簿,b文件夹是b工作簿,要求将a工作簿sheet1中的a,b两例用vba同步到b工作簿sheet1中的a,b两例,请高手帮帮忙啊,谢谢

第1个回答  2014-06-02
A工作簿里的VBA 编码
dim arr(65535),brr(65535)
xlsFile1="D:\b\b.xls" //扩展名为.xls,b文件夹在D盘

Do
If InStr(1, xlsFile, "a") = 0 Then
ActiveWorkbook.Sheets("Sheet1").select //a工作簿的表1

for i=1 to 65535
arr(i)=ActiveWorkbook.Sheets("Sheet1").cells(i,1).value
brr(i)=ActiveWorkbook.Sheets("Sheet1").cells(i,1).value
next

Workbooks.Open Filename:=adr1 & xlsFile1 //打开B工作簿
Windows(xlsFile1 & ".xls").Activate

Application.DisplayAlerts = true
for i=1 to 65535
ActiveWorkbook.Sheets("Sheet1").cells(i,1).value=arr(i)
ActiveWorkbook.Sheets("Sheet1").cells(i,1).value=brr(i)
next
Application.DisplayAlerts = False
ActiveWorkbook.Save
Workbooks.Close

Loop Until Len(xlsFile) = 0

懒得打。。自己看追问

你好,我在最后加了一个“end sub",怎么还不行,请指教

追答

不要用这方法了,会卡死,代码是我手工打的,有语法错误,懒得纠正。 现在只有钱才能驱动我去做事情。

追问

好吧,谢谢你

好吧,谢谢你

本回答被提问者采纳
第2个回答  2017-10-03
Sub 宏1()
    Dim wbA, abB, stA, stB
    Set wbA = Workbooks.Open("a\a.xls")
    Set stA = wbA.Sheets("sheet1")
    Set wbB = Workbooks.Open("b\b.xls")
    Set stB = wbB.Sheets("sheet1")
    stA.Range("A:B").Copy stB.Range("A:B")
    wbB.Save
    wbA.Close
    wbB.Close
End Sub

本回答被网友采纳
第3个回答  2017-12-02
这个问题好像解决过呀,对应同名工作表,代码:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Count > 1 Then Exit Sub '仅处理修改单个单元格
Dim cnn As Object, SQL$, s$
Select Case True
Case Target.Value = ""
s = "null"
Case IsDate(Target.Value)
s = "#" & Target.Value & "#"
Case IsNumeric(Target.Value)
s = Target.Value
Case Else
s = "'" & Target.Value & "'"
End Select
Set cnn = CreateObject("ADODB.Connection")
cnn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;hdr=no';data source=" & ThisWorkbook.Path & "\新建文件夹\Book2.xls"
SQL = "update [" & Sh.Name & "$" & Target.Address(0, 0) & ":" & Target.Address(0, 0) & "] set f1=" & s
cnn.Execute (SQL)
cnn.Close
Set cnn = Nothing
End Sub
第4个回答  2017-10-09
是点一个按钮同步?还是每操作一步就要同步?