Excel列表框的奇怪行为

Excel列表框的奇怪行为,excel,listbox,Excel,Listbox,好吧,这里发生了一些事情,我找不到解决办法。我在表单中加载了两个列表框:ListBox1和listBox2。ListBox1正在从特定文件夹加载文件名,而ListBox2在单击每个文件时从该文件加载特定信息 我这样做的方式是,当您单击左侧的文件时,文件被打开,特定的数据区域被复制到内存中,转储到ListBox2中,然后文件被关闭 所有这些都有效,但存在一个问题。复制/粘贴到ListBox2的操作很好(字符完全从源文件复制),当我打开excel工作簿时,但当我尝试复制/粘贴并关闭源excel文件时

好吧,这里发生了一些事情,我找不到解决办法。我在表单中加载了两个列表框:ListBox1和listBox2。ListBox1正在从特定文件夹加载文件名,而ListBox2在单击每个文件时从该文件加载特定信息

我这样做的方式是,当您单击左侧的文件时,文件被打开,特定的数据区域被复制到内存中,转储到ListBox2中,然后文件被关闭

所有这些都有效,但存在一个问题。复制/粘贴到ListBox2的操作很好(字符完全从源文件复制),当我打开excel工作簿时,但当我尝试复制/粘贴并关闭源excel文件时,ListBox2中出现了非常奇怪的字符。见下文。我知道ListBox限制了32k个项目,但事实并非如此,复制的范围是200行

当我在后台使用关闭excel时,会发生此行为

工作簿(workbooknow)。关闭保存更改:=False


如果我注释掉上面的代码。listbox2显示得非常漂亮。我不明白为什么文件打开与否会有差异,因为在我关闭文件之前,数据已经转储到ListBox2中。这是内存问题吗?

好的,这是一个简单的解决方案,我从一个数组加载了数据,现在一切都很好

Dim DataArray As Variant
然后

数据数组=范围(“A9:F200”)。值

With Me.ListBox2
         .List = DataArray
         .ColumnHeads = False
         .ColumnWidths = "70;70;50;100;260;80"
         .ColumnCount = 6
         .MultiSelect = fmMultiSelectMulti
End With