gpt4 book ai didi

Excel VBA 错误 - 函数或接口(interface)标记为受限。或函数使用 Visual Basic 不支持的自动化类型

转载 作者:行者123 更新时间:2023-12-02 11:05:29 24 4
gpt4 key购买 nike

我正在用 VBA 编写一个小分数查找程序,下面的代码在标题中给出了错误,我是 VBA 的新手,错误指向 Excel 本身生成的第一行。

Private Sub btnSearch_Click()
Name = txtSearch.Text
AmountOfEntries = Range("i10")
For i = 1 To AmountOfEntries
If Range("a" + i) = Name Then
cell = i
Else
cell = "Error"
End If
Next i

If cell = "Error" Then
lblScore.Caption = "Your Username is Incorrect. Please Try Again"
Else
lblScore.Caption = "Your Score Is : " + Range("b" + cell)
End If
End Sub

我的电子表格在“A”列中包含一个名称列表,然后在“B”列中包含一个分数列表。在“I10”中有一个字段包含列表中的条目数量。

最佳答案

您应该尽量避免使用“名称”、“单元格”等(VBA 中的通用术语)作为变量名称。尝试定义变量Dim strName as String, i as Integer, intCell as Integer, intAmountOfEntries as Integer .

此外,您的范围语句应更改为使用 &并指定您要使用 VALUE 而不是对象的 RANGE 方面:
Range("a" & i).ValueRange("b" & intCell).Value
编辑==============

在下面回复您的评论:

我认为问题是由于您使用单元格作为整数(行号)和字符串(“错误”)。我会创建一个新变量来检测是否有错误:
Dim blnError as Boolean
然后替换这个:
cell = "Error"blnError = True
您下面的 If 语句需要修改为 If blnError = True Then
您能否确认您有一张名为“Sheet1”的工作表?如果不是,那么这就是 Sheets("Sheet1") 的原因代码不起作用。我通常使用 VBA 名称代替工作表 - 在 VBE 中,您可以看到它们在项目资源管理器中的内容(括号前的名称),您可以使用属性窗口更改它们。然后你只需使用 sheetname.Range("A1") .

关于Excel VBA 错误 - 函数或接口(interface)标记为受限。或函数使用 Visual Basic 不支持的自动化类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15464801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com