【发布时间】:2019-05-14 13:13:32
【问题描述】:
我将在 VBA 模块中运行良好的代码复制到了用户窗体,因为我需要组合用户窗体中定义的一些操作。现在我在执行以下部分时卡住了,出现错误消息“应用程序定义或对象定义错误”
Sub test()
Dim Myworkbook As workbook
Dim Myid As Variant
Set Myworkbook = ThisWorkbook
Myid=1
Myref=FinRef(Myworkbook, "Ref", Myid)
End Sub
Function FinRef(myfile As Workbook, InputSheet As String, Ref_ID As Variant)
Dim I, k, LinkFrom, Description As Integer
Dim Linkdescrip As String
FinRef = ""
LinkFrom = 1
Description = 8
Linkdescrip = 7
For I = 2 To 3000
k = myfile.Sheets(InputSheet).Cells(I, LinkFrom)
If k = Ref_ID Then
FinRef = FinRef & myfile.Sheets(InputSheet).Cells(I, Linkdescrip) & myfile.Sheets(InputSheet).Cells(I, Description)
End If
Next I
End Function
虽然有很多人遇到过同样的问题,但我找不到适合我的解决方案。有什么建议吗?
非常感谢!
【问题讨论】:
-
你在哪一行得到错误?
-
前5行是什么程序?它们在程序之外是无效的。
-
@Dave 这是行' FinRef = FinRef & myfile.Sheets(InputSheet).Cells(I, Linkdescrip) & myfile.Sheets(InputSheet).Cells(I, Description)'
-
@DarrenBartrup-Cook 前 5 行定义在子过程中,函数定义在子过程之外。
-
Dim I, k, LinkFrom, Description As Integer声明了 3 个变体并且只有 1 个整数。我怀疑那是你的意图。另外,请发布minimal reproducible example,人们可以实际运行它以查看您的确切错误。您的问题与实际问题之间似乎存在脱节。
标签: excel vba runtime-error userform worksheet