excel vba 提示424错误“要求对象”?

2024-11-23 00:58:16
推荐回答(3个)
回答1:

你这个的
arr1(x) = Mid(TextBox.Text, x, 1)'提示424错误要求对象

你整个程序中并没有TextBox名称的控件,所以肯定会出错,还有你的数组只声明了,并没有给定范围并且你
TextBox2.Text = arr2(x)'提示下表越界
这句在for循环外,此时 x 的值已经是 txt1len+1的值了,而你数组arr2()只给到了txt1len肯定会提示越界的。
由于不太清楚你的意图,你看看下边这个更改后的代码是否符合你的要求吧。

Private Sub CommandButton1_Click()
TextBox2.Text = "" '清空文本框2
Dim txt1len As Integer
Dim arr1() As String '定义字符数组1用于存储文本框1的内容
Dim arr2() As String '定义字符数组2用于存储文本框2的内容
txt1len = Len(TextBox1.Text) '定义变量提取文本框1的字符长度
ReDim arr1(txt1len) '给定数组1的范围
ReDim arr2(txt1len) '给定数组2的范围
For x = 1 To txt1len
arr1(x) = Mid(TextBox1.Text, x, 1)
arr2(x) = "\x" & Hex(Asc(arr1(x)))
TextBox2.Text = TextBox2.Text & arr2(x)
Next x
'TextBox2.Text = arr2(x) '由于不太清楚你的意图是什么所以这句你自己看看应该放到哪里吧 _
总之放到这里肯定不对,会提示越界,我暂时已经给注解掉了,并把这句改为 _
TextBox2.Text = TextBox2.Text & arr2(x)放到循环里了,你看看是不是你要的结果吧
End Sub

回答2:

Private Sub CommandButton1_Click()
‘这里最好不用动态数组。如果你要记录每次输入输出的内容 可以在sheet.cell中记录过程
Dim Str1 As String'定义字符数组1用于存储文本框1的内容
Dim Str2 As String'定义字符数组2用于存储文本框2的内容
Dim txt1len As Integer
dim n,x as long
n=1
TextBox2.Text = "'清空文本框2

txt1len = Len(TextBox1.Text)'定义变量提取文本框1的字符长度
For x = 1 To txt1len
Str1= Mid(TextBox1.Text, x, 1)'提示424错误要求对象
Str2 = "\x" & Hex(Asc(Str1))'提示下表越界 (前面那个\x不太清楚什么意思。)
sheets(1).cells(n,"A")=str1
sheets(1).cells(n,"B")=str2
Next x
TextBox2.Text = arr2(x)'提示下表越界
End Sub

回答3:

这样可否?不是很清楚你的要求。

Private Sub CommandButton1_Click()
TextBox2.Text = "" '清空文本框2
Dim txt1len As Integer
Dim str1 As String, str2 As String
txt1len = Len(TextBox1.Value) '定义变量提取文本框1的字符长度
str2 = "\x"
For x = 1 To txt1len
str1 = Mid(TextBox1.Value, x, 1) '提示424错误要求对象
str2 = str2 & Hex(Asc(str1)) '提示下表越界
Next x
TextBox2.Value = str2 '提示下表越界
End Sub