我有2个excel工作表。在一张纸(sh1)上,我有B列,其中包含日期和D列:I,带有数字。
我希望有一个宏,如果列D中的一个单元格D:I包含值" 2",单击该单元格将获取属于该行的日期值单元格和比较是我的其他工作表中的日期值(sh2)。
第二张表中的日期值也在B列中。
到目前为止我所拥有的:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Date1 As Date
Date1 = Range("B" & ActiveCell.Row).Value
If Selection.Count = 1 Then
If Selection.Value = 2 Then
If Not Intersect(Target, Range("D:I")) Is Nothing Then
MsgBox Date1
End If
End If
End If
End Sub
此代码已将变量分配给属于所单击单元格的行的日期。我被困在我将该变量与第二张表中的日期进行比较的部分。
最终,我想在第二张表中找到匹配时这样做,它会选择该行。
答案 0 :(得分:0)
您的代码已修改:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Date1 As Date
Date1 = Range("B" & ActiveCell.Row).Value
If Selection.Count = 1 Then
If Selection.Value = 2 Then
If Not Intersect(Target, Range("D:I")) Is Nothing Then
foundDate = Date1
Call findDateOnSheet2
End If
End If
End If
End Sub
和(可能的解决方案)你需要在sheet2上找到行:
Option Explicit
Public foundDate As Date
Sub findDateOnSheet2()
Dim i As Long
i = 1
Do While Sheets(2).Cells(i, 2).Value <> ""
If Sheets(2).Cells(i, 2).Value = foundDate Then
Sheets(2).Activate
Sheets(2).Rows(i).Select
Exit Do
End If
i = i + 1
Loop
End Sub
<强> EDIT1:强>
可能你的表单看起来与我的测试表不同。您应该根据您的表格修改我的代码中的起始值和/或其他参数。结构
我的第一张纸:
和第二个