【发布时间】:2015-06-10 08:26:17
【问题描述】:
我正在尝试设置一个函数,该函数将能够检查从一张表 (sheet1) 到 2 列的日期:Sheet2 中的 startDate 和 endDate。如果有匹配,那么我想将位于 sheet2 上的一个单元格中的值复制到特定单元格(检查日期所在的同一行)到 sheet1 中。 我写了一些代码,但后来我意识到我的逻辑不好。 我还找到了this link on stackoverflow website...
my xls file - function is in the module 3 "checkDate"
这是代码..我需要以某种方式查找函数..也许我需要插入两个迭代器(2个for循环?)
Sub CheckDate()
Dim d1 As Date
Dim d2 As Date
Dim datumPok As Date
Dim s As String
Dim i As Long
Dim LR As Long
LR = Range("K" & Rows.Count).End(xlUp).Row
For i = 2 To LR
d1 = ActiveWorkbook.Worksheets("Glasnik").Cells(i, 2).Value
d2 = ActiveWorkbook.Worksheets("Glasnik").Cells(i, 3).Value
With .Range("K" & i)
datumPok = ActiveWorkbook.Worksheets("Spisak").Cells(i, 11)
If d1 < datumPok < d2 Then
MsgBox "opaaa"
s = ActiveWorkbook.Worksheets("Glasnik").Cells(i, 4).Value
ActiveWorkbook.Worksheets("Spisak").Cells(i, 6).Value = s
Else
MsgBox "test"
End If
End With
Next i
End Sub
我真的很喜欢这个..谢谢大家!
【问题讨论】:
-
像伦敦一样昏暗?你有没有运行过这段代码?
-
对此很抱歉,但 Dim j as Long 无关紧要。我会编辑它。再次抱歉
-
我怀疑至少
If d1 < datumPok < d2 Then行是您问题的很大一部分,因为您不能在 VBA 中使用这样的逻辑语句。尝试改用If d1 < datumPok And datumPok < d2 Then,因为这是正确的语法。如果您的代码仍然不起作用(我只是略读,寻找非常明显的错误),您能否尝试更简洁地说明您的问题,因为它真的不清楚您在问什么,或者您的问题在哪里。