我想在Excel宏中更改数据验证列表范围。最初手动选择整个C列,现在我想在VBA中动态更改它。
我的代码:
Dim startCell As Range, firstNonEmptyCell As Range
Dim range1 As Range, rng As Range
Set startCell = Worksheets("Sel").Range("C2")
Set ws = ThisWorkbook.Worksheets("Sel")
Set range1 = ws.Range("$C$2:startCell.End(xlDown).Address")
上面的行触发了运行时1004错误应用程序或对象定义错误
如果我将startCell.End(xlDown).Address硬编码为$ C $ 18,它实际上是startCell.End(xlDown)的返回值。如果我检查调试器,则代码的其余部分正常工作。< / p>
所以在这种情况下我不太确定这个错误的原因。
答案 0 :(得分:0)
取代:
Set range1 = ws.Range("$C$2:startCell.End(xlDown).Address")
使用:
Set range1 = ws.Range("$C$2:" & startCell.End(xlDown).Address)
可能还有其他问题。