我有一个从A2到A200的日期列表
我在Cell B1验证列表中引用A2:A200并且它工作正常。
但是当我想从列表中选择一个日期时,它总是首先从A2给出值...
VBA中有没有办法将A100的值分配给它?
答案 0 :(得分:2)
没有VBA:
在 C2 中输入:
=OFFSET($A$2,199-ROWS($1:1),0)
并复制下来。然后使用 C2:C200 作为验证列表。
使用VBA :
试试这个宏:
Sub InternalString()
Dim s As String
s = Range("A200").Value
For i = 199 To 2 Step -1
s = s & "," & Cells(i, "A").Value
Next i
Range("B1").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=s
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub