运行此代码时,出现以下错误:
运行时错误'1004':对象'_Global'的方法'Range'失败
非常感谢您的帮助。
Public Sub go()
Dim c As Range
Dim w As Integer
Dim h As Integer
Dim rowloop As Integer
Dim colloop As Integerr
Dim filename As String
filename = Range("configuration!excelfilename").Value
Windows(myfile).Activate
Worksheets("outputs").Range("A2:AK30").Clear
Sheets("api").Cells.ClearContents
w = Range("testcases").Columns.Count
h = Range("testcases").Rows.Count
'o = Range("outputs").Columns.Count
Sheets("outputs").Select
Range("A2").Select ' this decides the initial cell into which we will paste the first copy/paste operation in outputs
For rowloop = 2 To h 'iterate over each of the rows of inputs beginning with row 2
result = "PASS: "
Json = ""
For colloop = 1 To w ' first fill in all the inputs to the spreadsheet building the JSON for api as you go
Call PasteInput(Range("testcases")(colloop)(1), Range("testcases")(colloop)(rowloop))
'above PasteInput function call my below subroutine
Sub PasteInput(input_name As Variant, v As Variant)
filename = Range("configuration!excelfilename").Value
Windows(filename & ".xlsx").Activate
Range(input_name).Value = v ['error highlight on this line]
Windows(myfile).Activate
End Sub
答案 0 :(得分:0)
逐步进行调试将是您的朋友。使用debug.print
行来指示何时到达代码中的某些点将对您有很大的帮助。
使用Option Explicit
很重要,它可能会使系统提供更有用的注释,并且还可以进行调试。
您根据名称(Named Ranges
)调用范围。 filename = Range("configuration!excelfilename").Value
正在呼叫一个非法名称。
但是您的主要错误是您正在调用的命名范围不存在。由您自己进行调试,以找出为什么传递一个不好的名字来用作命名范围的原因。
此外,检查活动工作表中是否存在命名范围。因为您尚未指定工作表。
话虽如此,您的代码中还有许多其他错误,这意味着,即使修复了上述错误,您仍然会有错误。令您惊讶的是,您甚至使代码能够运行到足以产生错误的程度(编译器本该对For
感到困惑,而没有Next
和Sub
中的Sub
)。我希望我们在处理代码时会收到您的其他新问题!