我试图从两个不同的宏调用一个子程序。我创建了一个名为Store_Policy_Info_Sub_Routine(nrow)
的独立宏。
我还有另外两个以不同方式定义nrow的宏。一种是将数据附加到列表的末尾;另一个替换给定行中的数据。
我可以在两个宏中复制Store_Policy_Info_Sub_Routine
中的代码,但试图避免这种情况。
第一个宏(Store_Policy_Info)工作正常,并将nrow传递给子例程。第二个宏停止在子例程的第一行代码中:
Range("A" & nrow).Value = Range("InsuredName")
带
运行时错误'1004':应用程序定义的错误或对象定义的错误
似乎不喜欢在不止一个地方定义nrow。
Sub Store_Policy_Info()
'
' Store_Policy_Info Macro
Sheet10.Select
Dim nrow As Integer
nrow = Range("nrow").Value
Call Store_Policy_Info_Sub_Routine(nrow)
Sheet1.Select
Range("A1").Select
Sheet10.Visible = False
End Sub
Sub Rerun_Portfolio()
'
' Rerun the entire portfolio in the data tab and replace existing saved outputs
Sheet10.Select
Dim nrow As Integer
nrow = 2
Do While nrow <= Range("nrow")
Range("RetrievalSelection").Value = Application.WorksheetFunction.Index(Range("Stored_Inputs"), nrow)
Call Retrieve_Inputs
Call Store_Policy_Info_Sub_Routine(nrow)
nrow = nrow + 1
Loop
End Sub
答案 0 :(得分:-1)
我明白了。我必须在rerun_portfolio宏中的两个调用语句之间移动我的sheet10.select语句。感谢您提供帮助,并对给您带来的任何不便表示歉意。