Excel 使用另一个工作簿工作表执行此宏要求执行的操作

Excel 使用另一个工作簿工作表执行此宏要求执行的操作,excel,with-statement,Excel,With Statement,我打开了一个工作簿,我正试图对另一个工作簿执行操作,但在With语句中调用宏只会使其作用于我打开的工作簿,而不是我希望它执行操作的另一个工作簿 Sub Format_Another_Worksheet() Dim wb As Workbook Set wb = GetObject("C:\Users\john\Desktop\anotherworkbook.xls") With wb.Worksheets("Sheet1") .Cells.Font.Size

我打开了一个工作簿,我正试图对另一个工作簿执行操作,但在With语句中调用宏只会使其作用于我打开的工作簿,而不是我希望它执行操作的另一个工作簿

Sub Format_Another_Worksheet()

    Dim wb As Workbook

    Set wb = GetObject("C:\Users\john\Desktop\anotherworkbook.xls")

    With wb.Worksheets("Sheet1")
    .Cells.Font.Size = 14

    Call myfunction("A")

    End With

End Sub

Sub myfunction(col As String)
    Range(col & "1").Font.Size = 30
End Sub

我有数百个myfunction宏需要使用,但我不想在其中添加任何内容,事实上,我无法触摸这数百个其他myfunction宏

发送工作表对象,您要在其上运行此代码作为函数参数的一部分:

Sub Format_Another_Worksheet()

    Dim wb As Workbook

    Set wb = GetObject("C:\Users\john\Desktop\anotherworkbook.xls")

    With wb.Worksheets("Sheet1")
    .Cells.Font.Size = 14

    Call myfunction("A", wb.Worksheets("Sheet1"))

    End With

End Sub

Sub myfunction(col As String, ws as Worksheet)
    ws.Range(col & "1").Font.Size = 30
End Sub

显然,这与
with
无关,但是
with
只在调用它的子/函数中有上下文。它不会通过函数调用继续存在。

然后按名称对工作簿进行寻址

我有一个在两个工作簿之间工作的宏,我有:

Dim wbmaster As Workbook                     'name for master workbook
Dim wbtarget As Workbook                      'name for student workbook

wbmaster.Sheets("Answers_Source").Range("h1:z160").Copy
wbtarget.Sheets("ANSWERS").Range("h1:z160").PasteSpecial

所以它确切地知道要对哪些宏执行什么操作。

但是我有数百个长宏,我不想对它们中的每一个都加上这个ws。我想,在任何地方,你都必须进入它们,因为它们目前不起作用。也许一个精心创建的
查找/替换
会有所帮助?最后,您的
范围
对象必须使用它所属的
工作表
对象进行限定。否则它会乱七八糟。最终你的错误是写
范围。
而没有在它前面放
一些工作表。
来正确地限定它<代码>范围<代码>不合格将在<代码> ActSeaGeTe>代码>上运行,主知道只有在一个大意大利面宏的中间。