如何在另一个工作表上查找单元格值,并将值放在找到第一个值的行的另一列上



(我承认我是 vba 的新手,所以如果这是一个愚蠢的问题,我很抱歉 - 我也对任何英语错误感到抱歉)

一些背景:

我负责公司支持代理的活动时间表。例如,他们的领导者可以发送请求,将他们从日程安排中删除。同一天,每个代理可以有多个请求。(时间表是每天)

所以,我有两个电子表格,"请求"和"时间表">

在请求工作表上: 我需要检查每种类型的请求(假期、休息日等)的列。("E"列) 如果我找到此请求,我需要来自另一行(P 列)的代理电子邮件,在"计划"工作表("A"列)上搜索此电子邮件,并在"AI"列上放置一个"1"(我必须报告每个请求的 amout)

我一直遇到问题,主要是在"时间表"工作表上找到代理并放置"1",并且我尝试了其他代码,但这是我一直在处理的最后一个代码(一位同事使用"同时做"和"查找")

(目前Excel刚刚崩溃)

我尝试过的一些内容:

If wal.Cells(row, 5) = "Remove from the Schedule - Vacation" Then
'Application.WorksheetFunction.Match(wal.Cells(row, 16).Value, wsc.Range("A:A"), 0).row
wsc.Cells(Application.WorksheetFunction.Match(wal.Cells(row, 16).Value, wsc.Range("A:A"), 0).row, 35) = 1

ElseIf Cells(row, 5) = "Remove from the Schedule - Vacation" Then
row = Application.WorksheetFunction.Match(wal.Cells(row, 16), sc.Range("A:A"), 0)
wsc.Cells(row, 35) = 1
Set wal = Worksheets("Alterações")
Set wsc = Worksheets("Schedule")
i = 5
j = 41
Do While wal.Range("E" & i) <> 0
If wal.Range("E" & i) = "Remover do Schedule - Férias"  Then        
Set agent = wal.Range("P" & i).Find(wsc.Range("A" & j).Value).row                
Range("AI" & agent) = 1
End If
Loop

看看下面的Find例子

Sub demo()
Dim wal As Worksheet: Set wal = Worksheets("Alterações")
Dim wsc As Worksheet: Set wsc = Worksheets("Schedule")
Dim rng As Range, UserRow As Range
Dim UserEmail As String
With wal
Set rng = .Columns(5).Find("Remove from the Schedule - Vacation")
If Not rng Is Nothing Then
UserEmail = rng.Offset(0, 11).Value2
Debug.Print rng.Address, UserEmail
With wsc
Set UserRow = .Columns(1).Find(what:=UserEmail)
If Not UserRow Is Nothing Then
UserRow.Offset(0, Columns("AI").Column - UserRow.Column).Value2 = 1
End If
End With
End If
End With
End Sub

相关内容

最新更新