我打开了一个工作簿,我正在尝试对另一个工作簿执行操作,但在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
我有成百上千个我的函数宏需要使用,我不想进入并开始向它们添加东西,事实上,我不能接触这成百上千的其他我的函数宏。
发布于 2019-05-13 13:07:33
然后按名称指定工作簿的地址。
我有一个在两个工作簿之间工作的宏,我有这个:
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
所以它确切地知道该怎么做。
发布于 2019-05-13 13:06:23
将要在其上运行此代码的工作表对象作为函数参数的一部分发送:
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
只在调用它的sub/函数中有上下文。它不会在函数调用中继续存在。
https://stackoverflow.com/questions/56112941
复制