gpt4 book ai didi

vba - 从模块和基于工作表的运行代码之间的区别

转载 作者:行者123 更新时间:2023-12-04 21:04:32 24 4
gpt4 key购买 nike

我面临以下问题:
我有两个代码,一个是基于工作表的,第二个是基于模块的。在模块中,我定义了一个这样的范围:

Dim see As worksheet
Set see = sheets("Sheet2")
Dim rega As range
Dim gh As Long
gh = ThisWorkbook.Worksheets(1).Cells(1, 1)
Set rega = see.Range(Cells(3, gh + 2), Cells(39, gh + 2))

现在的问题是,当我使用 F5 从模块运行代码时,它工作正常,但是如果我从工作表中写的命令按钮调用它(调用它不起作用,似乎问题出在范围上。
任何想法,我错过了什么?

谢谢

最佳答案

不合格的范围对象可能会引发 1004 错误?

Set rega = see.Range(Cells(3, gh + 2), Cells(39, gh + 2))

请记住 Cells方法,除非由父 Worksheet 限定对象,将始终隐式引用 ActiveSheet .

尝试:
With see
Set rega = .Range(.Cells(3, gh + 2).Address, .Cells(39, gh + 2).Address)
End With

关于vba - 从模块和基于工作表的运行代码之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27143451/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com