use*_*996 15 excel vba excel-vba
我在VBA和编码方面都是全新的,我试图从同一工作簿的单元格中获取数据(获取框架路径......),然后启动应用程序(QTP)并运行测试.
尝试获取在Excel单元格中输入的值时,我收到此错误:
Run Time Error '424' object required
Run Code Online (Sandbox Code Playgroud)
我相信我错过了一些基本规则,但我感谢你的帮助.请参阅下面有问题的代码部分:
Option Explicit
Private Sub RunTest_Click()
Dim envFrmwrkPath As Range
Dim ApplicationName As Range
Dim TestIterationName As Range
'Dim wb As Workbook
'Dim Batch1 As Worksheets
Dim objEnvVarXML, objfso, app As Object
Dim i, Msgarea
Set envFrmwrkPath = ActiveSheet.Range("D6").Value ' error displayed here
Set ApplicationName = ActiveSheet.Range("D4").Value
Set TestIterationName = ActiveSheet.Range("D8").Value
Run Code Online (Sandbox Code Playgroud)
Por*_*ner 23
第一个代码行,Option Explicit意味着(简单来说)所有变量都必须由语句显式Dim声明.它们可以是任何类型,包括对象,整数,字符串,甚至是变体.
这一行:Dim envFrmwrkPath As Range声明envFrmwrkPath类型的变量Range.这意味着您只能将其设置为范围.
这一行:Set envFrmwrkPath = ActiveSheet.Range("D6").Value正在尝试将Range类型变量设置为单元格中的特定值D6.例如,这可以是整数或字符串(取决于您在该单元格中的内容),但它不是范围.
我假设你想要存储在变量中的值.尝试这样的事情:
Dim MyVariableName As Integer
MyVariableName = ActiveSheet.Range("D6").Value
Run Code Online (Sandbox Code Playgroud)
假设您在单元格D6中有一个数字(如5).现在你的变量将具有该值.
为简单起见,您可以删除或注释掉该Option Explicit行,VBA将尝试在运行时确定变量的类型.
试试这个来完成代码的这一部分
Dim envFrmwrkPath As String
Dim ApplicationName As String
Dim TestIterationName As String
Run Code Online (Sandbox Code Playgroud)