【发布时间】:2016-06-18 00:52:08
【问题描述】:
我不断收到错误“483”:对象在突出显示的行上不支持此属性或方法。我是 excel-vba 的初学者,我正在尝试自学。
Sub Magic()
Dim i As Integer, j As Integer, k As Integer
Dim featcode(9999)
Dim partnum(9999)
k = 4
i = 0
j = 0
For i = 2 To 616
featcode(i) = Cells(i, 1).Value
Next i
For j = 1 To 9999
partnum(j) = ThisWorkbook.Worksheets(3).Cells(j, 8).Value
Next j
For i = 2 To 616
For j = 1 To 1000
If featcode(i) = partnum(j) Then
**ThisWorkbook.Worksheets(2).Cells(i, k).Value = ThisWorkbook.Worksheets(3).partnum(j).Value**
k = k + 1
End If
Next j
k = 4
Next i
End Sub
【问题讨论】:
-
由于
partNum(j)将成为一个值,因此您不能使用.Value.Value。partNum(j)是什么?这是行还是列的值?如果这是您的意图,您将错过您想要放入partNum(j)的Cell()。你能解释一下潜艇应该做什么吗? -
尝试将行替换为
ThisWorkbook.Worksheets(2).Cells(i, k).Value = partnum(j)。这就是为什么你首先拥有数组的原因,不是吗? -
只需使用
..= partnum(j)你不需要参考工作表 -
您好,感谢您的帮助。 partNum(j) 应该将值存储在一列中。这个 vba 试图做的事情如下:我在另一个工作表上有一个很长的特征列表和很多零件号,它们有自己的一些特征。每个零件编号都有多个特征,并且它们不是唯一的。我需要提取一组特定特征的所有零件编号。我知道我需要使用 2D 数组,但这只是草稿,看看它是否有效。