如何解决在 VBA 中对表头使用 MATCH 函数
我正在尝试使用 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 举报,一经查实,本站将立刻删除。