Vba Rowsource行为在不重新加载userform//获取列表=范围的列标题的情况下不更新/重置列表框

Vba Rowsource行为在不重新加载userform//获取列表=范围的列标题的情况下不更新/重置列表框,vba,excel,userform,Vba,Excel,Userform,我有下面的代码可以工作,但只有在我卸载(x)userform并重新加载它的时候。listbox(作为DatabaseViewer)在userform initialize上加载 testbutton将获取文本框上的字符串输入,模糊搜索原始数据库,并将数据库复制到临时工作表中,从而允许rowsource公式工作 我宁愿使用list=Ranges而不是RowSource,但从我的谷歌搜索结果来看,这似乎是可靠获取标题的唯一方法,如果有其他方法可以获取标题,请务必共享 Private Sub test

我有下面的代码可以工作,但只有在我卸载(x)userform并重新加载它的时候。listbox(作为DatabaseViewer)在userform initialize上加载

testbutton将获取文本框上的字符串输入,模糊搜索原始数据库,并将数据库复制到临时工作表中,从而允许rowsource公式工作

我宁愿使用list=Ranges而不是RowSource,但从我的谷歌搜索结果来看,这似乎是可靠获取标题的唯一方法,如果有其他方法可以获取标题,请务必共享

Private Sub testButton_Click()
Dim dataworksheet As String

dataworksheet = ActiveSheet.Name

MsgBox (dataworksheet)

Range(Cells(getFirstDataAreaRow, getApplicableColumn("Original Name")), Cells(getLastDataAreaRow, getApplicableColumn("Original Name"))).AutoFilter Field:=1, Criteria1:="*" & searchByName.Value & "*"
Range(Cells(getFirstDataAreaRow, getApplicableColumn("Number")), Cells(getLastDataAreaRow, getlastDataAreaColumn)).SpecialCells(xlCellTypeVisible).Copy
Sheets("Temp").Activate
Range("A1").Select
ActiveSheet.Paste
Sheets(dataworksheet).Activate
MsgBox (dataworksheet)
Dim TempDataArea As Range
Set TempDataArea = Range(ThisWorkbook.Sheets("Temp").Cells(getFirstDataAreaRow("Temp") + 1, getlastDataAreaColumn("Temp")), ThisWorkbook.Sheets("Temp").Cells(getLastDataAreaRow("Temp"), getlastDataAreaColumn("Temp")))


        With databaseViewer
            .ColumnCount = getlastDataAreaColumn("Temp")
            .ColumnHeads = True 'only works if you are using rowsource
            .ColumnWidths = "0;;4 in" 'THIS SETS the number column to HIDDEN!
            .RowSource = TempDataArea.Cells.Address 'rowsouce only works with address, .list works with ranges
        End With


End Sub

在设置正确的
.RowSource
之前,请尝试重置它ᴇʜ遗憾的是,这行不通!遗憾的是,“不起作用”没有包含任何我们可以帮助您的信息。请始终准确描述实际发生的情况,而不是您所期望的情况。@Pᴇʜ很抱歉没有提供足够的信息。我的错。行为与我描述的一样。在我重新加载userform之前不起作用。我还尝试了(和颠倒顺序)的组合。rowsource=“.rowsource=vbNullString与above@Pᴇʜ发现错误,数据指向错误的区域进行填充。谢谢你的耐心,朋友。