我有一个零件号码列表,如下所示,每个零件号码都有一个范围起始值和最终值,它们需要替换零件号中的***。用VBA识别给定范围
我想确定范围的开始和结束值,在sheet2(RangeTable)上的范围列表中查找它们,然后将其与单独的零件编号连接起来,因此对于列A中的每个零件编号,范围值在B列和C列中定义的数据将连接在sheet3(PartNumbers)上。
该代码未标识范围开始和结束值,并且正在为范围表中的所有值创建零件号。
Sub CompilePartNums()
Dim WS1 As Worksheet
Dim WS2 As Worksheet
Dim WS3 As Worksheet
Dim LR1 As Long
Dim LR2 As Long
Dim LR3 As Long
Dim Ctr1 As Long
Dim Ctr2 As Long
Set WS1 = Worksheets("Tabelle1")
Set WS2 = Worksheets("RangeTable")
Set WS3 = Worksheets("PartNumbers")
With WS1
LR1 = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
With WS2
LR2 = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
LR3 = 2
For Ctr1 = 2 To LR1
For Ctr2 = 2 To LR2
Select Case WS2.Cells(Ctr2, 1)
Case WS1.Cells(Ctr1, 2) To WS1.Cells(Ctr1, 3)
WS3.Cells(LR3, 1) = replace(WS1.Cells(Ctr1, 1), "***", WS2.Cells(Ctr2, 1))
LR3 = LR3 + 1
End Select
Next
Next
End Sub
工作表Sheet1(Tabelle1)貌似这个并继续向下ROW1210
Sheet2中(排列元素)看起来是这样的,在这种需要的值留在这个顺序不属于连续
表Sheet 3(PartNumbers)是被输出的结果,就应该在390停止但是它会继续传递所有的RangeTable值。
我理解正确吗?你在Tabelle1表的A列中有一个零件号码清单,每个清单的格式都是'xxxx *** xxx'(或者可能只是'xxxx ***' - 可能没有关系),并且RangeTable工作表A列中的另一份零件编号列表(格式相同)。在该表的B和C列中,您有一些值(比如B中的10和C中的22)。你想在PartNumbers表的A列产生记录,一行说'xxxx10xxx',接下来说'xxxx11xxx'等,然后你想用Tabelle1表中的下一个零件号做同样的事情? – YowE3K
我想它会帮助人们,如果你发布了你的问题和期望的解决方案的截图。 –
下面添加屏幕截图以提供帮助。YowE3K这是正确的 – Atishk87