Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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
Arrays VBA奇怪的弹出窗口,要求输入文件_Arrays_Vba_Excel_Loops - Fatal编程技术网

Arrays VBA奇怪的弹出窗口,要求输入文件

Arrays VBA奇怪的弹出窗口,要求输入文件,arrays,vba,excel,loops,Arrays,Vba,Excel,Loops,我使用下面的循环来运行预定义的工作表,但是如果我将“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 = LBo

我使用下面的循环来运行预定义的工作表,但是如果我将
“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

我想可能是这句话:

.Range(“AM2:BK1800”).Formula=“=IF(”&.Name&“S”!N2=“”S“)”

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

ABC

而不是


ABC S

我想可能是这一行:

.Range(“AM2:BK1800”).Formula=“=IF(”&.Name&“S”!N2=“”S“)”

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

ABC

而不是


ABC S

假设活动工作簿有一个名为
工作表1
的工作表,这应该可以

此外,每个循环使用,易于阅读和遵循

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

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

此外,每个循环使用,易于阅读和遵循

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

如果你改变,也许在“ABC”表中有代码something@Storax否工作表为空,仅填写页眉。所有图纸均与同一第一行相同。代码只是没有通过“ABC”我说的是sheet@Storax所有工作表都是新创建的,我在创建工作表的有问题的工作表上方有一个代码。因此,没有分配给ABC的模块。这是一个空工作表。当您的公式或查询包含无法解析的引用时,可能会出现“输入弹出窗口”。如果您更改,工作表“ABC”中可能会出现代码something@Storax否工作表为空,仅填写页眉。所有图纸均与同一第一行相同。代码只是没有通过“ABC”我说的是sheet@Storax所有工作表都是新创建的,我在创建工作表的有问题的工作表上方有一个代码。因此,没有分配给ABC的模块。这是一张空表。当您的公式或查询包含无法解析的引用时,可能会出现“输入弹出窗口”。您是一个天才。。我想这可能是问题所在。我刚刚看到这个弹出框几次,我自己编写代码,知道仔细扫描公式中的表名!我知道这不是第一页的参考,因为其他的页都有用,只有ABC页掉了下来…你是个天才。。我想这可能是问题所在。我刚刚看到这个弹出框几次,我自己编写代码,知道仔细扫描公式中的表名!我知道这不是第一页的参考,因为其他的页都有用,只有ABC页掉了下来…谢谢!应该在开始时转换为for循环。谢谢!在开始时应已转换为for循环。