Excel 如果列位于不同的工作表中,如何更改代码
更具体地说: -我有三个装满可乐、可乐和可乐的专栏 -如果可乐中的物品在E列中有匹配物品,则将G列中的匹配物品放在第二列B中 我的问题是: 上述代码正确,但所有列都在同一张表中。Excel 如果列位于不同的工作表中,如何更改代码,excel,vba,Excel,Vba,更具体地说: -我有三个装满可乐、可乐和可乐的专栏 -如果可乐中的物品在E列中有匹配物品,则将G列中的匹配物品放在第二列B中 我的问题是: 上述代码正确,但所有列都在同一张表中。 如果A列在SHEET1中,E列和G列在SHEET2中,如何更改代码?只需将SheetsSheetName添加到范围之前,并将“lastRowcolA”替换为将查找最后一行的代码即可。例如: Sub Button2_Click() 'COMPARE colA and colE - if colA=c
如果A列在SHEET1中,E列和G列在SHEET2中,如何更改代码?只需将SheetsSheetName添加到范围之前,并将“lastRowcolA”替换为将查找最后一行的代码即可。例如:
Sub Button2_Click()
'COMPARE colA and colE - if colA=colE, put colG matched to colE
Dim rngcolE As Range, rngcolA As Range, rngFound As Range, rngSearch As Range
Set rngcolA = Range("A2:A" & lastRowcolA)
Set rngcolE = Range("E2:E" & lastRowcolE)
'searches for all articlesA in column A mentioned in rngcolA:
For Each rngSearch In rngcolA
'all articleE are searched in rngcolE:
Set rngFound = rngcolE.Find(What:=rngSearch, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
'if articleE is found:
If Not rngFound Is Nothing Then
'found articlesG's cells are entered in column B, against his name given in column A:
ngSearch.Offset(0, 1) = rngFound.Offset(0, 2)
End If
Next
End Sub
请注意,除了当前正在查看的工作表外,您不能对其他工作表使用Select功能,但其他功能应该可以正常工作。是。我知道用户2696883。我没有复制整个代码。然而,这里是第一部分:
Set rngcolA = Sheets("Sheet1").Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
Set rngcolE = Sheets("Sheet2").Range("E2:E" & Range("E" & Rows.Count).End(xlUp).Row))
它不能正常工作。我的意思是,rngSearch.Offset0,1=rngFound.Offset0,2不起作用。如果您试图将rngSearch.Offset0,1设置为rngFound.Offset0,2中包含的值,那么您应该将其编码为rngSearch.Offset0,1=rngFound.Offset0,2。值不起作用,因为您需要设置范围。既然您将变量声明为范围,那么就不能只=它们。那么这解决了您的查询,答案可以接受了吗?或者你仍然不确定我能澄清什么吗?Noldor130884,我应该怎么做而不是=?
Dim ws As Worksheet
Dim lastRowcolA As Long
Dim lastRowcolE As Long
Set ws = thisWorkbook.Sheets("Sheet1")
With ws
lastRowcolA= .Range("A" & .Rows.Count).End(xlUp).Row
lastRowcolE = .Range("E" & .Rows.Count).End(xlUp).Row
End With