Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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
Excel 参考外接程序中的不同表_Excel_Vba - Fatal编程技术网

Excel 参考外接程序中的不同表

Excel 参考外接程序中的不同表,excel,vba,Excel,Vba,我目前正在处理一个宏,它可以修改电子表格的标准格式。这将被我公司的几个人用于许多电子表格。所以我创建了一个每个人都可以安装和使用的插件。 但是,并非所有电子表格的每张表格都有相同的名称。 最初,我试着将这些表称为 Sheet1.Range... 这给 Run-time error '424': Object required. 我可以和你一起工作 Worksheets('name_of_worksheet').Range 但这需要用户在每次希望在不同的电子表格中使用外接程序或重命名工作表时

我目前正在处理一个宏,它可以修改电子表格的标准格式。这将被我公司的几个人用于许多电子表格。所以我创建了一个每个人都可以安装和使用的插件。 但是,并非所有电子表格的每张表格都有相同的名称。 最初,我试着将这些表称为

Sheet1.Range...
这给

Run-time error '424':
Object required.
我可以和你一起工作

Worksheets('name_of_worksheet').Range
但这需要用户在每次希望在不同的电子表格中使用外接程序或重命名工作表时更改该值。 是否有其他方式参考“第一”和“第二”工作表?它们将始终按照该顺序创建

我相信这与将宏保存为加载项有关,因为我从未遇到过此问题

谢谢大家!

编辑: 电子表格的重新格式化取决于表1和表2中的数据。因此,在宏中,我需要能够引用这两张表。工作表的名称并不总是相同的,因此我不希望使用:

Worksheets('name_of_worksheet').Range
使用活动工作表也不理想,因为只有一个活动工作表,我需要访问两个工作表

Sheets(1).Range
也不起作用,我得到错误:

Run-time error '424':
Object required.

你可以做一个丑陋的黑客和循环两张纸

i = 1
For Each Sht In ThisWorkbook.Sheets
    If i = 3 Then Exit For
    Debug.Print Sht.Name
    i = i + 1
Next Sht
这将循环所有工作表,当两个工作表已循环时,代码将退出for循环。

在循环中,您可以将工作表名称保存为变量,或者将其用作代码的基础,并添加代码而不是调试行。

Sheets(1)。我知道您需要的范围是。或者为什么不使用ActiveSheet?这样的话,它就是用户当前激活的工作表。用户尝试了这种方式,但它不起作用。(sheets(1))ActiveSheet可以满足我对1的需求,但第1页和第2页都需要使用。我认为您需要澄清问题。现在更清楚了吗?我认为如果您使用完整的参考资料会更好,我的意思是,类似于
TargetWorkbook.TargetWorksheet.Range…
的另一个选项是在工作簿中的所有工作表之间循环,将名称放入数组并调用它们。