我有合并的数据,其中包含一个人在工作中做得有多好。它有一封私人电子邮件,右边有两行数据。在另一张工作表上,我创建了一个座位图的鸟瞰视图,现在我需要将数据放在人员所坐的位置(以列的形式,例如B4和C4 )。例如,我的数据是单元格A1中的人的电子邮件,而他们的数据是B1和C1。现在另一个问题是,实际数据来自网站,因此数据将不断更新。所以这意味着一个人的数据将会改变,或者根本不会出现。不过,也许一个新人可能会带来数据。当然,这意味着新的电子邮件和新的数据。
我试着使用IF语句,结果出了问题。
Sub button()
With Worksheets("three").Range("G1")
If .Value = "sconlon@iadvancenow.com" Then
Worksheets("Sheet2").Range("C3") = .Offset(0, 1).Value
Worksheets("Sheet2").Range("D3") = .Offset(0, 2).Value
End If
End With
End Sub
这就是当一切都正常时,最终应该发生的事情。合并的数据将被移动到另一个工作表(座位图),在该人员的姓名下是他们的数据。因此,整合的数据将放在那里。现在数据将被更新,因此一个人的数据将发生变化,以前没有数据的人现在将拥有或将不会拥有数据。
data enter image description here
座位图enter image description here
这是一张很大的座位图,但这是一张旧的,但它与我现在的相似,但这两个名字的最后一张照片来自我的实际工作表
我现在有enter image description here的问题
发布于 2019-06-06 02:18:46
试一试:
Sub tgr()
Dim wb As Workbook
Dim wsData As Worksheet
Dim wsDest As Worksheet
Set wb = ActiveWorkbook
Set wsData = wb.Worksheets("three")
Set wsDest = wb.Worksheets("Sheet2")
Dim aSeatingRows As Variant
aSeatingRows = Array(25, 44, 65, 82, 101, 120, 139)
Dim aSeatingCols As Variant
aSeatingCols = Array("B", "E", "I", "P", "S", "W", "Z")
Dim vResult As Variant
Dim sEmail As String
Dim vRow As Variant
Dim vCol As Variant
Dim i As Long
For Each vRow In aSeatingRows
For Each vCol In aSeatingCols
sEmail = Application.Trim(wsDest.Cells(vRow, vCol).Value)
If Len(sEmail) > 0 Then
sEmail = Left(sEmail, 1) & Split(sEmail, " ")(1) & "@iadvancenow.com"
For i = 2 To 3
vResult = Application.VLookup(sEmail, wsData.Range("G:I"), i, False)
If IsError(vResult) Then
wsDest.Cells(vRow + i + 12, vCol).ClearContents
Else
wsDest.Cells(vRow + i + 12, vCol).Value = vResult
End If
Next i
Else
wsDest.Cells(vRow + 14, vCol).Resize(2).ClearContents
End If
Next vCol
Next vRow
End Sub
https://stackoverflow.com/questions/56464363
复制相似问题