我有一個零件號碼列表,如下所示,每個零件號碼都有一個範圍起始值和最終值,它們需要替換零件號中的***。用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