Excel Word 2010宏不工作
我有一个Word文档,可以从Excel电子表格导入数据。两个文件都不是我的;我继承了这个问题。在以前版本的Excel电子表格中,数据位于Q列至T列。在新版本中,数据位于R列至U列。使用的代码如下。当我运行文档的早期版本时,没有问题。当我使用新文档导入时,它会立即中断,并显示以下错误代码: 5941-请求的集合成员不存在 调试器突出显示问题代码Excel Word 2010宏不工作,excel,vba,ms-word,Excel,Vba,Ms Word,我有一个Word文档,可以从Excel电子表格导入数据。两个文件都不是我的;我继承了这个问题。在以前版本的Excel电子表格中,数据位于Q列至T列。在新版本中,数据位于R列至U列。使用的代码如下。当我运行文档的早期版本时,没有问题。当我使用新文档导入时,它会立即中断,并显示以下错误代码: 5941-请求的集合成员不存在 调试器突出显示问题代码ElseIf cel.Value”“。新代码如下。(除上述范围外,工作的旧代码完全相同) 有什么想法吗 提前谢谢 Sub ImportComplianceR
ElseIf cel.Value”“
。新代码如下。(除上述范围外,工作的旧代码完全相同)
有什么想法吗
提前谢谢
Sub ImportComplianceResults()
Dim fd As FileDialog, oApp As Excel.Application, oWb As Excel.Workbook, iWs As Integer, rData As Excel.Range
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
'Open modal window
.Title = "Select file to import:"
.InitialFileName = "X:\Template\"
.Filters.Clear
.Filters.Add "Excel files", "*.xlsx"
.InitialView = msoFileDialogViewList
.AllowMultiSelect = False
If .Show = -1 Then
Set oApp = New Excel.Application
Set oWb = oApp.Workbooks.Open(.SelectedItems(1), , True)
'Check for worksheet in selected file
For Each ws In oWb.Worksheets
If ws.Name = "Compliance Results" Or ws.Name = "Résultats de conformité" Then iWs = ws.Index
Next ws
If iWs > 0 Then
Set rData = oWb.Worksheets(iWs).Range("R10:T10,R13:U15,R17:U17,R19:U19,R21:U21,R23:U23,R25:U25,R27:U27,R29:U29,R32:U34,R37:U39")
With ActiveDocument
For Each cel In rData
If IsError(cel.Value) Then
.SelectContentControlsByTag(cel.Address).Item(1).Range.Text = "#N/A"
***ElseIf cel.Value <> "" Then
.SelectContentControlsByTag(cel.Address).Item(1).Range.Text = Format(cel.Value, cel.NumberFormat)***
Else
.SelectContentControlsByTag(cel.Address).Item(1).Range.Text = " "
End If
Next cel
End With
MsgBox "Data imported successfully.", vbInformation
Else
MsgBox "No data exists in selected file." & vbCr & "Import cancelled.", vbCritical
End If
oWb.Close False
'Cleanup Resources
Set rData = Nothing
Set oWb = Nothing
Set oApp = Nothing
Else
MsgBox "Import cancelled.", vbCritical
End If
End With
End Sub
Sub-ImportComplianceResults()
Dim fd作为文件对话框,oApp作为Excel.Application,oWb作为Excel.工作簿,iWs作为整数,rData作为Excel.Range
Set fd=Application.FileDialog(msoFileDialogFilePicker)
有fd
'打开模态窗口
.Title=“选择要导入的文件:”
.InitialFileName=“X:\Template\”
.过滤器
.Filters.Add“Excel文件”,“*.xlsx”
.InitialView=msoFileDialogViewList
.AllowMultiSelect=False
如果.Show=-1,则
设置oApp=New Excel.Application
设置oWb=oApp.Workbooks.Open(.SelectedItems(1),True)
'检查所选文件中的工作表
对于oWb.工作表中的每个ws
如果ws.Name=“Compliance Results”或ws.Name=“Résultats de conformité”,则iWs=ws.Index
下一个ws
如果iWs>0,则
设置rData=oWb.工作表(iWs).范围(“R10:T10、R13:U15、R17:U17、R19:U19、R21:U21、R23:U23、R25:U25、R27:U27、R29:U29、R32:U34、R37:U39”)
使用ActiveDocument
对于rData中的每个cel
如果IsError(cel.Value)那么
.选择ContentControlsByTag(单元格地址)。项(1)。Range.Text=“#N/A”
***ElseIf cel.Value“”则
.SelectContentControlsByTag(cel.Address)。项(1)。Range.Text=格式(cel.Value,cel.NumberFormat)***
其他的
.SelectContentControlsByTag(单元格地址)。项(1)。Range.Text=“”
如果结束
下一个细胞
以
MsgBox“数据导入成功”,vbInformation
其他的
MsgBox“所选文件中不存在数据”&vbCr&“导入已取消”,vbCritical
如果结束
关闭错误
“清理资源
设置rData=Nothing
设置oWb=Nothing
设置oApp=Nothing
其他的
MsgBox“导入已取消”,vbCritical
如果结束
以
端接头
尝试使用:
ElseIf Not cel.Value = "" Then
.SelectContentControlsByTag(cel.Address).Item(1).Range.Text = Format(cel.Value, cel.NumberFormat)
一旦超过错误控制,只需使用.Text属性而不是.Value
...
ElseIf cel.Text <> "" Then
.SelectContentControlsByTag(cel.Address).Item(1).Range.Text = cel.Text
...
。。。
其他单元格文本“”则
。选择ContentControlsByTag(单元格地址)。项(1)。Range.Text=cel.Text
...
谢谢你的建议!当我这么做的时候,它在那个点上断裂了。我所做的是将范围修改回原来的方式,并且有效(请注意,数据不在正确的位置),但当我进行此修改时,它不起作用:(谢谢David!我尝试了你的建议,但它没有破坏任何东西,这很好。但是,一旦我尝试使用正确的范围再次导入,它就不再起作用了。我想,在范围内我只看到了一些我没有看到的东西。word文档中总共有4个宏,这可能是其中一个问题吗其他3个是导致问题的原因,而它只是在这个特定的位置断裂?