【问题标题】:VBA Strange pop-up asking for input fileVBA奇怪的弹出窗口要求输入文件
【发布时间】:2018-04-22 17:22:57
【问题描述】:

我正在使用以下循环来运行预定义的工作表,但如果我将"ABC" 作为数组的一部分包含在内,我将始终得到一个弹出窗口,就好像我必须输入一个文件一样。如果"ABC" 被删除,则不会弹出窗口。有谁知道是什么原因?

Dim nTable As Variant
 nTable = Array("Table 1", "Table 2", "Table 3", "Table 4", "Table 8", _
"Table 11", "Table 12", "Table 13", "ABC") 

For w = LBound(nTable) To UBound(nTable)
    With ActiveWorkbook.Worksheets(nTable(w))
            'input any statement, I used autofit as an example
            .Range("A2:AR1800").Formula = "=IF(ISBLANK('Sheet 1'!A2),"""", 'Sheet 1'!A2)"
            .Range("AM2:BK1800").Formula = "=IF('" & .Name & " S'!N2 =""S"", ""S"", """")"
            .Range("AT2:AU1800").Formula = "='Sheet 1'!BA2"
            .Range("A1:BL1").Columns.AutoFit

    End With
Next w

【问题讨论】:

  • 如果您更改某些内容,可能会触发“ABC”工作表中的代码
  • @Storax 不,表格是空的,只填充了标题。所有工作表都与相同的第一行相同。代码只是没有通过“ABC”
  • 我说的是sheet的代码模块
  • @Storax 所有工作表都是新创建的,我在创建工作表的有问题的代码正上方有一个代码。因此没有分配给 ABC 的模块。这是一张空纸。
  • 当您的公式或查询包含无法解析的引用时,可能会出现“输入弹出窗口”。

标签: arrays vba excel loops


【解决方案1】:

我想大概是这样的:

.Range("AM2:BK1800").Formula = "=IF('" & .Name & " S'!N2 =""S"", ""S"", """")"

您的所有其他工作表是否都命名为 Table 1 STable 2 S 等...但 ABC 刚刚命名

ABC

而不是

ABC S?

【讨论】:

  • 你是个天才。我想这可能是问题
  • 不,我刚刚看到这个弹出几次我自己的代码,并且知道要仔细扫描公式中的工作表名称!我知道这不是 Sheet 1 参考,因为其他工作表都可以工作,只有 ABC 工作表掉了下来......
【解决方案2】:

假设 ActiveWorkbook 有一个名为 Sheet 1 的工作表,这应该可以工作...

另外,请改用 For Each 循环,易于阅读和遵循...

Dim nTable As Variant, tbl
nTable = Array("Table 1", "Table 2", "Table 3", "Table 4", "Table 8", _
"Table 11", "Table 12", "Table 13", "ABC")

For Each tbl In nTable
    With ActiveWorkbook.Sheets(tbl)
        .Range("A2:AR1800").Formula = "=IF(ISBLANK('Sheet 1'!A2),"""", 'Sheet 1'!A2)"
        .Range("AM2:BK1800").Formula = "=IF('" & .Name & "'!N2 =""S"", ""S"", """")"
        .Range("AT2:AU1800").Formula = "='Sheet 1'!BA2"
        .Range("A1:BL1").Columns.AutoFit
    End With
Next tbl

【讨论】:

  • 谢谢!应该在一开始就转换为 for 循环。
猜你喜欢
  • 1970-01-01
  • 2017-03-20
  • 1970-01-01
  • 2015-01-12
  • 1970-01-01
  • 2020-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多