如何将模块中的格式化子例程应用于跨工作簿的各种范围
Posted
技术标签:
【中文标题】如何将模块中的格式化子例程应用于跨工作簿的各种范围【英文标题】:How to apply formatting subroutine in module to various ranges across workbook 【发布时间】:2020-07-17 08:53:15 【问题描述】:我在一个模块中创建了一个格式化子,我想调用工作簿中的各种范围。对我的范围对象应用无效过程时出现 424 错误。
在模块中,我有:
Option Explicit
Sub BoldRedFont(rng As Range)
With rng.Font
.Name = "Calibri"
.Size = 10
.Color = -16776961
.Bold = True
End With
End Sub
在工作表中,我有:
Option Explicit
DynamicSpreadsRange()
Dim pasteCell As Range
Set pasteCell = Range("B5")
pasteCell = "Paste spreads here"
BoldRedFont (pasteCell)
End Sub
【问题讨论】:
删除这些括号 -BoldRedFont (pasteCell)
- 子程序不使用它们。函数可以。这不是一个函数,因为它不返回任何东西。
这能回答你的问题吗? Purpose of using sub routines over functions
【参考方案1】:
正如@braX 在评论中提到的,你不能使用 BoldRedFont (pasteCell)
但是你可以像这样在 Call 中使用它:
Call BoldRedFont(pasteCell)
或前面提到的(不带括号)
BoldRedFont pasteCell
我还建议在您想将值写入范围时使用范围(和其他对象)的属性然后使用 (当您将参数发送到 BoldRedFont 函数时这是正确的,因为您想将整个范围发送到那里)。
pasteCell.Value = "Paste spreads here"
我希望这能澄清一点。
【讨论】:
以上是关于如何将模块中的格式化子例程应用于跨工作簿的各种范围的主要内容,如果未能解决你的问题,请参考以下文章