[英]Use VBA in Excel to Find and Update Related Records on a Different Sheet from Working Sheet
我有两个电子表格。 每个电子表格都包含带有各种信息位的行,包括唯一的标识符号(在这种情况下为ISBN)。
我正在尝试创建一个脚本来确定工作表上是否存在记录(从A列获取ISBN –工作表称为ePubWorking),并在包含该行的主表(ePubMaster)上标记一列(V)与上一张纸上的ISBN相同(新纸上的ISBN也保留在A列中)。 它需要对ePubWorking工作表上找到的每个记录执行此操作。
我已经尝试了一些在这里找到的代码变体,但是似乎什么也无法工作。 这是我目前正在使用的(似乎没有做任何事情):
Dim rCell As Range
Dim rFind As Range
Dim iColumn As Integer
For Each rCell In Sheets("ePubWorking").Range("A2", Sheets("ePubWorking").Cells(Rows.Count, "A").End(xlUp))
Set rFind = Sheets("ePubMaster").Rows(1).Find(What:=Trim(rCell.Value), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
rCell.Offset(0, 2).Value = "Sent"
If Not rFind Is Nothing Then
rFind.Offset(0, 21).Value = "Sent"
End If
Next rCell
使用以上内容(或我的其他任何变体)都没有任何反应。 我什至无法使“已发送”部分出现在辅助工作表上。
谁能指出我正确的方向?
好了,谢谢您的指导,很显然,我在弗兰肯斯坦的尝试上花了很长时间,对我正在做的事情视而不见。 正如Zac指出的那样,我在ePubMaster工作表上沿错误的方向看。
工作代码:
Dim wb As Workbook: Set wb = ThisWorkbook
Dim workingSheet As Worksheet: Set workingSheet = wb.Sheets("ePubWorking")
Dim masterSheet As Worksheet: Set masterSheet = wb.Sheets("ePubMaster")
Dim workingRange As Range: Set workingRange = Range(workingSheet.Range("A2"), workingSheet.Cells(workingSheet.Rows.Count, "A").End(xlUp))
Dim rCell As Range
Dim rFind As Range
For Each rCell In workingRange
If Not rCell.Value = vbNullString Then
Set rFind = masterSheet.Rows.Find(What:=Trim(rCell.Value), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
rCell.Offset(0, 2).Value = "Sent"
If Not rFind Is Nothing Then
rFind.Offset(0, 21).Value = "Sent"
End If
End If
Next rCell
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.