使用 xlwings 执行多个宏时出现错误 1004

波波维奇

我正在尝试使用 xlwings 使用 python 运行包含多个工作表和宏(全部编写在模块中)的 xls 文件,但似乎在连续执行多个宏时遇到了麻烦。我已经尝试了几件事来克服这个问题,但我还不能解决这个问题:

这是我的 xlwings 脚本和 vba 宏的一个简单示例(均在模块中定义):

我正在尝试使用 xlwings 运行的典型 VBA 宏,这些宏用于在找到数据时清理工作表的某些范围:

Sub Clear_data()
Application.ScreenUptating = False
Application.Calculation = xlCalculationAutomatic

last_col = Worksheets("Sheet1").Range("ZZ2").End(xlToLeft).Column

If last_col > 6 Then
    Worksheets("Sheet1").Range(Cells(2,7), Cells(6,last_col)).ClearContents
End If

Application.ScreenUptating = False
Application.Calculation = xlCalculationAutomatic
End Sub

我正在运行的 xlwings 脚本示例:

def clear_sheet1(filename = "", file_location = "") :

# Connection with the xls workbook
    fullpathname = os.path.join(file_location,filename)
    Workbook = xw.Book(fullpathname)

# Executing the vba macros with xlwings
    #1
    macro1 = Workbook.macro("NAME_OF_MY_MACRO_1")
    macro1()
    #2
    macro2 = Workbook.macro("NAME_OF_MY_MACRO_2")
    macro2()
    #3
    macro3 = Workbook.macro("NAME_OF_MY_MACRO_3")
    macro3()

# Saving and closing the Workbook
Workbook.save()
Workbook.close()
return()
  1. 当我在 Excel 中执行所有 vba 宏时,一切正常。

  2. 当我运行我的函数只执行一个宏时,它仍然可以。

  3. 当我运行我的函数来连续执行几个宏时(如下面的脚本示例中所写),我系统地收到了 VBA 错误 1004。在我应该抑制在其中找到的数据的行中的第二个宏中一张 : Worksheets("Sheet1").Range(Cells(2,7), Cells(6,last_col)).ClearContents

如果有人可以分享他对这个问题的了解或帮助我找到我的代码中的问题,我们将不胜感激!如果需要,请随时向我询问更多详细信息。

非常感谢 :)

NB

SJR

我认为问题可能是一个常见的 VBA 问题,因为您没有完全限定所有范围引用。试试这个

If last_col > 6 Then
    With Worksheets("Sheet1")
        .Range(.Cells(2, 7), .Cells(6, last_col)).ClearContents
    End With
End If

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Excel-VBA宏从工作簿复制时出现运行时错误'1004'

如何使用xlwings从Python调用Excel宏?

循环执行宏时VBA 1004错误

当 columnindex 使用变量时,Cells 函数中出现错误 1004?

使用动态数组时出现运行时错误 1004

第二次执行宏时出现运行时错误 1004

使用XLwings将多个变量从Excel传递到Python

使用xlwings保存xlsm文件时出错的问题

在形状中使用OnAction获取错误1004

使用VBA ExportAsFixedFormat无法解决错误1004

使用 vlookup 时出现错误 1004 应用程序定义或对象定义错误?

尝试在C:\ Users \ Me \ ProjectOutput中使用.SaveAs时出现错误1004

为什么在使用SortFields.Add2添加键时出现1004错误?

尝试使用FormulaArray时出现错误1004。替换把戏不起作用

当我使用Range.Cells()引用单个单元格时出现错误1004

使用 ActiveWorkbook.Queries.Add 拉表时出现错误 1004

我如何在使用 python 中的 xlwings 或 openpyxl 包执行读写文件时隐藏 excel

使用 MsgBox 时的运行时错误“1004”方法“OnTime”

使用范围时Excel VBA错误1004

VBA 执行错误 1004

打印 PDF 时出现 VBA 错误 1004

xlwings(0.7.0)导入UDF错误

Excel VBA宏出现运行时错误'1004'

在范围对象中使用完全限定的单元格时出现运行时错误'1004'

Excel VBA - 使用 .ModifyAppliesTo 和运行时错误 1004(尝试插入太长的字符串时出现问题?)

使用VBA更改系列公式。错误代码1004

使用 WorksheetFunction.VLookup(动态范围)解决 1004 错误问题

使用宏获取路径时出现错误

“运行时错误'1004'无法在隐藏的工作簿上编辑宏。使用“取消隐藏”命令取消隐藏工作簿”在Ribbon XML中使用“ onLoad”时