首页 > 解决方案 > Excel VBA:为什么我的 Range 变量无论设置为什么都不返回?

问题描述

我试图在工作表激活时使用概览表上 C 列中的公司名称列表填充一个组合框,其中行数可变。

这是我的代码:

Private Sub Worksheet_Activate()
Dim namerange As Range
Dim lastrow As Integer

Set wk1 = ThisWorkbook.Worksheets("Financials")
Set wk2 = ThisWorkbook.Worksheets("FinancialData")
Set Ov = ThisWorkbook.Worksheets("Overview")

'Define range of company names
With Ov
lastrow = .Range("C" & .Rows.Count).End(xlUp).Row
Set namerange = .Range(Ov.Cells(6, 3), .Cells(lastrow, 3))
End With

'Add Portfolio names to combobox
With wk1.ComboBox1
.List = namerange
End With
End Sub

我已经尝试手动设置namerange为我想要填充框的实际范围,但无论我尝试将其设置为什么,它都不会返回任何内容并且会.List引发错误。

我对 VBA 的了解非常有限,所以我觉得我在这里遗漏了一些明显的东西。我很困惑,因为我在其他地方使用过类似的代码而没有问题。

标签: excelvba

解决方案


推荐阅读