Excel 使用VBA按行更新数据直到最后一行
我有两个优点。Excel 使用VBA按行更新数据直到最后一行,excel,vba,Excel,Vba,我有两个优点。 Excel1有7列,其中3列已填充。Excel2还有7列全部填充。 Excel2的前3列包含来自Excel1的数据。Excel1大约有50行,而Excel2有10行。 我想将所有数据从Excel2更新到Excel1(更新整行) 我想将这10行更新为Excel2(它已经有来自Excel2的前3列数据)。在更新行宏时,应检查前三列的数据(它应完全匹配)。 请帮忙 我试图在这里编写代码 但它显示了格式化错误。很抱歉我可以上传到这里。完成了… 我使用Do-until循环,如下所示: Su
Excel1有7列,其中3列已填充。Excel2还有7列全部填充。
Excel2的前3列包含来自Excel1的数据。Excel1大约有50行,而Excel2有10行。
我想将所有数据从Excel2更新到Excel1(更新整行)
我想将这10行更新为Excel2(它已经有来自Excel2的前3列数据)。在更新行宏时,应检查前三列的数据(它应完全匹配)。 请帮忙 我试图在这里编写代码
但它显示了格式化错误。很抱歉我可以上传到这里。完成了…
我使用Do-until循环,如下所示:
Sub Macro6()
Dim rw As Integer, clm As Integer, clcnt1 As Integer, clcnt2 As Integer, clmcnt As Integer
Dim str As String, str1 As String, str2 As String
rw = 1
clm = 1
clmcnt = 0
Do
clcnt1 = Range("B1").End(xlDown).Row
Rows("1:1").Select
Range("E1").Activate
Selection.AutoFilter
Range("B" & rw).Select
Windows("dfg.xlsx").Activate
clcnt2 = Range("B1").End(xlDown).Row
clmcnt = cntcnt + 1
str = Cells(rw, clm + 1).Value
Selection.Copy
Windows("testing1.xlsm").Activate
ActiveSheet.Range("$B$1:$E$" & clcnt1).AutoFilter Field:=1, Criteria1:=str, Operator:=xlAnd
Windows("dfg.xlsx").Activate
Range("D" & rw).Select
Application.CutCopyMode = False
Selection.Copy
Windows("testing1.xlsm").Activate
Range("D" & rw).Select
str1 = Cells(rw, clm + 3).Value
ActiveSheet.Range("$B$1:$E$" & clcnt1).AutoFilter Field:=3, Criteria1:=str1, Operator:=xlAnd
Range("E" & rw).Select
Windows("dfg.xlsx").Activate
Range("E" & rw).Select
str2 = Cells(rw, clm + 4).Value
Application.CutCopyMode = False
Selection.Copy
Windows("testing1.xlsm").Activate
ActiveSheet.Range("$B$1:$E$" & clcnt1).AutoFilter Field:=4, Criteria1:=str2, Operator:=xlAnd
Windows("dfg.xlsx").Activate
Rows(rw).Select
Range("E" & rw).Activate
Application.CutCopyMode = False
Selection.Copy
Windows("testing1.xlsm").Activate
Rows(rw + 1).Select
Range("E" & rw + 1).Activate
ActiveSheet.Paste
Range("E" & rw).Select
Application.CutCopyMode = False
Selection.AutoFilter
rw = rw + 1
clcnt2 = clcnt2 + 1
Loop Until rw = clcnt2
ActiveWorkbook.Save
End Sub
嘿,现在完成了…我使用下面的代码获取过滤数据的行号,然后根据该行号进行必要的更新
ActiveSheet.Range(“$B$2:$E$135”)。偏移量(1,0)。特殊单元格(xlCellTypeVisible)。行
感谢大家的帮助我们是
Excel1
和Excel2
工作簿或工作表吗?你能给我们看看你目前掌握的代码吗?@AlexP:Excel1和Excel2是不同的workbooks@rwisch45Sub Macro3()'Macro3宏行(“2:2”)。选择范围(“C2”)。激活选择。AutoFilter Flname=InputBox(“输入文件名:”、“创建新文件…”)窗口(Flname)。激活范围(“B1”)。选择选择选项。复制窗口(“testing1.xlsm”)。激活活动表。范围($A$2:$H$35”)。自动筛选字段:=2,标准1:=“=abc”、0)运算符:=xlAnd窗口(“dfg.xlsx”)。激活范围(“D1”).Select Application.CutCopyMode=假选择。复制窗口(“testing1.xlsm”)。激活继续------->ActiveSheet.Range($A$2:$H$35”)。自动筛选字段:=4,标准1:==15-Jun-13”,运算符:=xlAnd窗口(“dfg.xlsx”)。激活范围(“E1”)。选择Application.CutCopyMode=假选择。复制窗口(“testing1.xlsm”)。激活ActiveSheet.Range($A$2:$H$35”)。自动筛选字段:=5,标准1:==A“,u运算符:=xlAnd窗口(“dfg.xlsx”)。激活行(“1:1”)。选择范围(“E1”)。激活应用程序。CutCopyMode=假选择。复制窗口(“testing1.xlsm”)。激活范围(“A2”).选择ActiveSheet.Pasteam现在面临一个问题…它直接按顺序更新行,而不是按筛选的行!-(如何解决?