Excel,下标超出范围
我可能已经阅读了互联网上的每一篇文章,但无法让它发挥作用 我创建了一个具有(1)列表框控件和(1)Excel电子表格控件的表单。就这样。我试图实现的是能够在电子表格控件中浏览excel工作簿 我已经从网络中的特定文件夹填充了列表,我也可以将数据转储到电子表格控件,但只能从“活动工作簿”中转储。这就是问题所在。我需要在单击列表框时激活不同的工作簿。请参阅下面我的列表框代码。单击()。我在此处收到错误消息Workbooks(workbooknow).Activate“。我已确保文件扩展名正确,文件名也正确,并通过调试确认 私有子列表框1_单击() 端接头 这就是我在列表框中填充列表的方式 私有子用户表单_初始化()Excel,下标超出范围,excel,vba,Excel,Vba,我可能已经阅读了互联网上的每一篇文章,但无法让它发挥作用 我创建了一个具有(1)列表框控件和(1)Excel电子表格控件的表单。就这样。我试图实现的是能够在电子表格控件中浏览excel工作簿 我已经从网络中的特定文件夹填充了列表,我也可以将数据转储到电子表格控件,但只能从“活动工作簿”中转储。这就是问题所在。我需要在单击列表框时激活不同的工作簿。请参阅下面我的列表框代码。单击()。我在此处收到错误消息Workbooks(workbooknow).Activate“。我已确保文件扩展名正确,文件名
Dim filelist()作为字符串
作为字符串的Dim fname
Dim FNAMEAS字符串
作为字符串的Dim fPath
作为整数的Dim I
'定义要搜索文件的目录
fPath=“X:\ESTIMATINGSOLUTIONS\”
'生成文件列表
fname=Dir(fPath&“*.xlsx”)
而fname“”
'将fName添加到列表中
I=I+1
ReDim保留文件列表(1到I)
文件列表(I)=fname
'工作簿(fname)。激活
'获取下一个文件名
fname=Dir()
温德
'查看是否找到任何文件
如果I=0,那么
MsgBox“未找到任何文件”
出口接头
如果结束
'循环浏览列表并添加到列表框
对于I=1到UBound(文件列表)
Me.ListBox1.AddItem文件列表(I)
下一个
端接头
我想知道此错误消息是否来自激活工作簿时的“文件路径”。此处有任何帮助。您希望输入仅为
filename.filetype
,因此,例如C:\test.xlsx
应仅为工作簿(“test.xlsx”).activate
谢谢你,泽克,我可以在调试时确认这正是workbooknow所持有的。这很奇怪。我用不同的方法完成了它,但我得到了相同的错误。我甚至将文件名直接放在了Workbooks上(“assistivelistening.xlsx”).Activate和我得到相同的错误。可能是什么。该文件存在,因为它实际上已添加到列表框中。如果这是一个明显的问题,很抱歉,但我需要确定。您是否已打开目标文件?工作簿(x)。如果是,则仅激活函数。否则,请执行工作簿。打开(x)您希望输入仅为filename.filetype
,因此例如C:\test.xlsx
应仅为工作簿(“test.xlsx”).activate
谢谢你,泽克,我可以在调试时确认这正是workbooknow所持有的。这很奇怪。我用不同的方法完成了它,但我得到了相同的错误。我甚至将文件名直接放在了Workbooks上(“assistivelistening.xlsx”).Activate和我得到相同的错误。可能是什么。该文件存在,因为它实际上已添加到列表框中。如果这是一个明显的问题,很抱歉,但我需要确定。您是否已打开目标文件?工作簿(x)。如果是,则仅激活函数。否则,请执行工作簿。打开(x)
Dim p_wsSheet As Worksheet
Dim p_rnData As Range
Dim p_owcSpread As OWC11.Spreadsheet
Dim workbooknow As String
Dim fPath As String
workbooknow = ListBox1.Text
Workbooks(workbooknow).Activate
Set p_wsSheet = ActiveSheet
Set p_rnData = p_wsSheet.Range("A1:N300")
Set p_owcSpread = Me.Spreadsheet1
With p_owcSpread
'Populate a range.
With .ActiveSheet
.Range("A2:N300").Value = p_rnData.Value
End With
'Limit the range to be viewed in the control.
With .ActiveWindow
.ViewableRange = "A1:N300"
End With
End With
Set p_owcSpread = Nothing
Dim filelist() As String
Dim fname As String
Dim fnameActivation As String
Dim fPath As String
Dim I As Integer
'define the directory to be searched for files
fPath = "X:\ESTIMATINGSOLUTIONS\"
'build a list of the files
fname = Dir(fPath & "*.xlsx")
While fname <> ""
'add fName to the list
I = I + 1
ReDim Preserve filelist(1 To I)
filelist(I) = fname
' Workbooks(fname).Activate
'get next filename
fname = Dir()
Wend
'see if any files were found
If I = 0 Then
MsgBox "No files found"
Exit Sub
End If
'cycle through the list and add to listbox
For I = 1 To UBound(filelist)
Me.ListBox1.AddItem filelist(I)
Next