问题描述
我正在尝试使用 MATCH 函数来确定一行。我有几个孔,其中一些孔穿过许多部分(例如:孔 1 可以穿过两个部分,但旁边的孔 2 可以穿过四个部分)。每层的直径可能不同,并且可能会有很大差异。我需要为图层拉出正确的直径。我的代码一直工作到我试图让 j 等于下一个孔所在的行号的那一行。我认为我的问题在于范围。我想使用表头,因为输入表的大小可能因项目而异。
我更新了代码以反映评论中的建议以及我能够在 MATCH 函数中使用表头的研究。现在的问题是它将行拉到我预期的下方。使用示例表上的代码 j ,MATCH 返回的行是 5,这是第 3 洞的一行,除非它计算标题行,但我认为使用 dataBodyRange 会排除该行。请注意,我的表格从单元格 A5 开始。我想我还有一个参考问题。
Private Sub UpdatePitchDia_Click()
'Want to use diameters from the same part
Dim i
Dim j
Dim LastRowIn
Dim Hole_Num
Dim Incoming_Dia
Dim Hole_L
Dim Hole_R
Dim Hole_U
Dim Hole_D
Dim Stack_Up
Dim Stack_Up_L
Dim L_Dia
Dim tbl_In As ListObject
Dim Hole As Range
Set tbl_In = ThisWorkbook.Sheets("Input").ListObjects("tbl_Input")
Set Hole = tbl_In.ListColumns(1).Range
LastRowIn = tbl_In.DataBodyRange.Rows.Count
i = 1
j = 0
For i = 1 To LastRowIn Step 1
Hole_L = [tbl_Input].Cells(i,4)
If Not IsEmpty(Hole_L) Then 'Not all holes have adjacent holes
'Need to make sure that the part layers are the same
j = WorksheetFunction.Match(Hole_L,Hole,0)
'MsgBox "Row of Hole Left (" & Hole_L & ") is " & j
Stack_Up = [tbl_Input].Cells(i,2)
Stack_Up_L = [tbl_Input].Cells(j,2)
If Stack_Up <> Stack_Up_L Then
j = j + 1
Stack_Up_L = [tbl_Input].Cells(j,2)
Else: L_Dia = [tbl_Input].Cells(j,3)
End If
End If
Next
End Sub
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)