2017-03-09 109 views
0

实际上,我正在编写一个代码,用于突出显示或删除列“A”具有>组合框中所选日期的行。我正在使用下面的代码组合框中的日期格式

Private Sub ComboBox1_Change() 

Application.EnableEvents = False 
ComboBox1.Value = Format(ComboBox1.Value, "dd-mm-yyyy") 
Application.EnableEvents = True 

End Sub 

Private Sub ComboBox2_Change() 

ComboBox2.Value = Format(ComboBox2.Value, "dd-mm-yyyy") 

End Sub 

Private Sub okButton_Click() 

Dim i As Long 

For i = 2 To 6724 
    If Range("A" & i).Value > ComboBox1.Value Then 
     With Selection.Interior 
      .ColorIndex = 34 
      .Pattern = xlSolid 
     End With 
    End If 
Next 

End Sub 

当我执行此操作时,没有任何反应。 然后在单元格中打印组合框值,以便我可以找出问题所在的位置,并且我发现组合框&中的日期格式的打印日期格式不同。 可能存在其他问题,我的代码& enable event = false也不起作用。任何帮助将不胜感激。

+0

尝试:如果Range(“A”&i).Value2> fix(ComboBox1.Value)Then' – Fadi

回答

0

我现在在iPad上,无法检查我的建议,但解决此问题的方法是确保A列中有一个日期,其值为41234,并且不介意如何单元格被格式化。 您可以使用CDate(Combobox1.Value)转换Combobox1中的任何日期。请记住,CDate需要字符串格式的有效日期。 CDate函数的结果是一个Long,它与列A中的日期值相当。您应该可以使用现有的代码来处理它。