【问题标题】:VBA xlwings - variable resolutionVBA xlwings - 可变分辨率
【发布时间】:2019-05-25 02:14:37
【问题描述】:

我无法将一个电子表格中的单元格值分配给另一个电子表格中的单元格。当我尝试这样做时,会向我抛出无效的语法。 不能直接分配吗?这是代码..

cwb = xlwings.Book(r'%s'%pqcPath+'Metrics Consolidator - Testing.xlsm')
currentWB = xlwings.Book(r'%s'%xPath+f)

for f in files_needed:
    currentWB = xlwings.Book(r'%s'%xPath+f)

    lastRowError = currentWB.sheets('pQC Checklist').range('E' + 
    str(currentWB.sheets('pQC 
    Checklist').cells.last_cell.row)).end('up').row

    for i in range(14, lastRowError):

        lastRow = cwb.sheets('Matrix').range('A' + 
        str(cwb.sheets('Matrix').cells.last_cell.row).end('up').row

        **cwb.sheets('Matrix').range('L' + lastRow + 1).Value = 
        currentWB.sheets('pQC Checklist').range('E' + i).Value**

    currentWB.save()
    currentWB.close()

【问题讨论】:

  • 请注意,xlwings 使用小写 .value 遵循 Python 的标准表示法。

标签: python excel vba pandas xlwings


【解决方案1】:

您是否将工作簿定义为变量?

dim wb1 as Workbook, wb2 as Workbook, ws1 as Worksheet, ws2 as Worksheet
set wb1 = Workbooks("WorkbookName1")
set ws1 = wb1.Worksheets("Sheet1")

set wb2 = Workbooks("WorkbookName2")
set ws2 = wb2.Worksheets("Sheet1")

根据我的经验,excel vba 在处理多个工作簿/工作表时非常容易出现错误。 我总是首先将我计划使用的每个 wb/ws 分配给变量。

【讨论】:

  • 是的,我做到了.. 以下行引发了无效的语法错误。 cwb 和 currentWB 均已记录 cwb.sheets('Matrix').range('L' + lastRow + 1).Value = currentWB.sheets('pQC Checklist').range('E' + i).Value
  • 您能否在“**cwb.sheets”行上创建一个断点,然后运行并查看变量 lastRow 中存储的值。您可以执行此操作,但在 sub 在断点处暂停时将鼠标悬停在变量上。
猜你喜欢
  • 1970-01-01
  • 2019-11-26
  • 2013-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多