Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行时错误91-access excel交互_Excel_Ms Access_Vba - Fatal编程技术网

运行时错误91-access excel交互

运行时错误91-access excel交互,excel,ms-access,vba,Excel,Ms Access,Vba,我正在运行一个access VBA代码来打开Excel,对一些图形进行一些小的修改,并将它们保存为BMP。98%的时间都很好用。但是,我偶尔会在第“Selection.Left=320”行出现以下错误: 运行时错误“91”: 对象变量或未设置块变量 我想解决的第二个小问题是,每次运行此宏后打开任何其他excel文档时,此宏使用的excel文档也会自动打开,不知道为什么 Private Sub Form_Open(Cancel As Integer) If [Forms]![Detail]![Qu

我正在运行一个access VBA代码来打开Excel,对一些图形进行一些小的修改,并将它们保存为BMP。98%的时间都很好用。但是,我偶尔会在第“
Selection.Left=320
”行出现以下错误:

运行时错误“91”:
对象变量或未设置块变量

我想解决的第二个小问题是,每次运行此宏后打开任何其他excel文档时,此宏使用的excel文档也会自动打开,不知道为什么

Private Sub Form_Open(Cancel As Integer)
If [Forms]![Detail]![Qualification Documents].[Value] <> "" Then
         Dim octopus As String
         octopus = ([Forms]![Detail]![Qualification Documents].[Value])
         Set objExcelApp = New Excel.APPLICATION
         Dim ws As Worksheet

Set wb = objExcelApp.Workbooks.Open(FileName:="Path\" & octopus & " ", ReadOnly:=True)
         'Set ws = wb.Sheets("SheetX")
          wb.APPLICATION.DisplayAlerts = False
          wb.Sheets("SheetX").Select
  x = 1
  While x < 4
  wb.ActiveSheet.ChartObjects(x).Activate
  With wb.ActiveChart.Parent
     .Height = 500 ' resize
     .Width = 1200 ' resize
     .Top = 100    ' reposition
     .Left = 100   ' reposition
  End With

                 On Error GoTo here:
here:
wb.ActiveChart.Legend.Select
Selection.Left = 320
Selection.Top = 380
Selection.Height = 35
Selection.Width = 600
wb.ActiveChart.Export "X:\Assembly\CAPEX 2013\drilling database\graph" & x & ".bmp"
x = x + 1
Wend
wb.Close
Set objExcelApp = Nothing
End If
End Sub
私有子表单\u打开(取消为整数)
如果[表格]![细节]![资格证明文件].[价值]”“那么
暗章鱼串
八达通=([Forms]![Detail]![Qualification Documents]。[Value])
Set objExcelApp=New Excel.APPLICATION
将ws设置为工作表
设置wb=objExcelApp.Workbooks.Open(文件名:=“Path\”和octopus&“”,只读:=True)
'设置ws=wb.Sheets(“SheetX”)
wb.APPLICATION.DisplayAlerts=False
工作分解表(“SheetX”)。选择
x=1
而x<4
ActiveSheet.ChartObjects(x).激活
使用wb.ActiveChart.Parent
.高度=500'调整大小
.Width=1200'调整大小
.顶部=100'重新定位
.左=100'重新定位
以
错误转到此处:
在这里:
wb.ActiveChart.Legend.Select
选择。左=320
选择。Top=380
选择。高度=35
选择。宽度=600
wb.ActiveChart.Export“X:\Assembly\CAPEX 2013\drilling database\graph”&X&“.bmp”
x=x+1
温德
wb.关闭
设置objExcelApp=Nothing
如果结束
端接头

似乎
选择
有时是无效的,即在运行宏时,选择会以某种方式无效,例如,用户单击Excel窗口或类似操作。尝试直接使用图形或对象的
Left
属性,而不使用
选择。

x = 1
While x < 4
    With wb.Sheets("SheetX").ChartObjects(x)
        .Parent.Height = 500 ' resize
        .Parent.Width = 1200 ' resize
        .Parent.Top = 100    ' reposition
        .Parent.Left = 100   ' reposition

        .Legend.Left = 320
        .Legend.Top = 380
        .Legend.Height = 35
        .Legend.Width = 600
    End With
Wend
x=1
而x<4
带wb.Sheets(“SheetX”).ChartObjects(x)
.Parent.Height=500'调整大小
.Parent.Width=1200'调整大小
.Parent.Top=100'重新定位
.Parent.Left=100'重新定位
.Legend.Left=320
.Legend.Top=380
.Legend.Height=35
.Legend.Width=600
以
温德

谢谢你的回答。但是,我已经解决了这个问题,所以我无法测试您对特定问题的建议。