Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 从模块和基于工作表运行代码之间的差异_Vba_Excel - Fatal编程技术网

Vba 从模块和基于工作表运行代码之间的差异

Vba 从模块和基于工作表运行代码之间的差异,vba,excel,Vba,Excel,我面临以下问题的挑战: 我有两个代码,一个是基于图纸的,第二个是基于模块的。在模块中,我定义了如下范围: 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

我面临以下问题的挑战: 我有两个代码,一个是基于图纸的,第二个是基于模块的。在模块中,我定义了如下范围:

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从模块运行代码时,它工作正常,但是如果我从工作表中编写的commandbutton调用它(调用它不工作,并且似乎问题在于范围)。 有什么想法吗,我错过了什么


谢谢

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

Set rega = see.Range(Cells(3, gh + 2), Cells(39, gh + 2))
请记住,
单元格
方法,除非由父
工作表
对象限定,否则将始终隐式引用
活动表

尝试:


通常它不应该给出任何错误。你能显示你在commandbutton click中写了什么代码吗?它没有给出错误,只是没有定义范围,所以范围是“无”它与commandbutton中所写的内容无关,它是一个很长的代码,可以做很多不同的事情。谢谢David,它帮助解决了这个问题。你是对的。但是,只有在我将Set-see=sheets(“Sheet2”)更改为Set-see=Thisworkbook.sheets(“Sheet2”)后,问题才得以解决.RegardsUnless代码位于工作表模块中,在这种情况下,它将引用该工作表,即使该工作表未处于活动状态。
With see
    Set rega = .Range(.Cells(3, gh + 2).Address, .Cells(39, gh + 2).Address)
End With