vba - 在另一个 Sub 中编辑一个 Sub
问题描述
无法弄清楚如何从另一个子中编辑子。我试过这个:
Sub Sub1()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet2")
ws.Range("A1").Value = "Useless"
End Sub
Sub Sub2()
Dim test as string
test = ThisWorkbook.Worksheets("Sheet1").Range("B3").Value
If test = "here" Then
Call Sub1
With Sub1
ws.Range("A2").Value = test.Value
End With
End If
我收到一个expected function or variable
错误,可能是因为它Sub1
应该是一个函数。但是,即使将其更改为函数,Sub2
尽管代码运行,仍然无法正常工作。
解决方案
当您尝试转换Sub1
为函数时,您实际上是在正确的轨道上。您只需要使函数“返回”创建的工作表对象。这里:
Function Sub1() As Worksheet ' Don't forget to use a different name for Sub1 (and
' preferably Sub2 as well).
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet2")
ws.Range("A1").Value = "Useless"
Set Sub1 = ws
End Function
Sub Sub2()
Dim test As String
test = ThisWorkbook.Worksheets("Sheet1").Range("B3").Value
If test = "here" Then
With Sub1
.Range("A2").Value = test
End With
End If
End Sub
显然,您需要将名称更改为Sub1
反映函数功能的其他名称。
另外,请注意我使用test
的不是你的test.Value
,因为test
它已经是一个字符串并且没有Value
属性。
推荐阅读
- python - 反转 2D --> 2D 非线性函数
- bash - 使用 fdisk 命令的 Bash 脚本磁盘分区
- elasticsearch - 在每个索引的小数据集上进行多索引搜索的 ElasticSearch 性能优化
- angular - 如何在状态管理中增加或减少对象属性?
- oauth-2.0 - 为 /oauth/token 配置基本身份验证
- python - 如何获取其他字段中的表字段
- javascript - 如何将数组元素分配给 onclick 函数
- html - 为什么此新闻代码中的链接无法点击?
- javascript - React - 检查数组中的重复项
- python - 使用 apt install 在 Conda 中安装软件包