1
所以我有一段代碼,我已經寫了代碼的第一部分,是用指定的標題創建一個新的工作表。代碼的第二部分是爲了用某些信息填充該表。我遇到的問題是獲取正確的位信息進入正確的列。 我需要的代碼來搜索工作簿 之內的所有的工作表中的列G中的值9.1,如果該值被發現我需要它這在新的片材具有以下信息一起復制到柱B:有搜索功能需要幫助編輯
引擎F列的影響必須將同一行粘貼到名爲FHA 的工作表中的列C部分編號始終位於單元格J3中,它必須粘貼到列D中且始終相同 零件名稱始終位於C2中必須粘貼到列E並始終相同 來自列B的FM ID同一行必須粘貼到工作表中列F的標題爲FHA 故障模式& C列的原因必須將同一行粘貼到FHA 01列中FMCN值從列N粘貼到H列在FHA
,因爲它代表我的代碼是
Sub createWSheetFHA()
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "FHA"
Cells(1, 2) = "FHA TABLE"
Cells(2, 2) = "FHA Ref"
Cells(2, 3) = "Engine Effect"
Cells(2, 4) = "Part No"
Cells(2, 5) = "Part Name"
Cells(2, 6) = "FM I.D"
Cells(2, 7) = "Failure Mode & Cause"
Cells(2, 8) = "FMCM"
Cells(2, 9) = "PTR"
Cells(2, 10) = "ETR"
Range(Cells(2, 2), Cells(2, 10)).Font.Bold = True
Range(Cells(1, 2), Cells(1, 10)).MergeCells = True
Range(Cells(1, 2), Cells(1, 10)).Font.Bold = True
End Sub
Sub Populate_FHA_Table_2()
Dim wks As Excel.Worksheet, i As Integer, n As Integer
Application.ScreenUpdating = False
Sheets("FHA").Range("A2:" & Columns.Count & ":" & Rows.Count).Delete
i = 1
For Each wks In ActiveWorkbook.Worksheets
If wks.Name <> "FHA" Then
wks.UsedRange.AutoFilter Field:=7, Criteria1:="9.1"
Sheets(i).Range(Sheets(i).Range("G1").Offset(1), Sheets(i).Range("B1").End(xlDown)).Copy _
Sheets("FHA").Range("C" & Rows.Count).End(xlUp)
Sheets(i).Range(Sheets(i).Range("F1").Offset(1), Sheets(i).Range("D1").End(xlDown)).Copy _
Sheets("FHA").Range("d" & Rows.Count).End(xlUp)
Sheets(i).Range(Sheets(i).Range("J1").Offset(1), Sheets(i).Range("E1").End(xlDown)).Copy _
Sheets("FHA").Range("e" & Rows.Count).End(xlUp)
Sheets(i).Range(Sheets(i).Range("C1").Offset(1), Sheets(i).Range("H1").End(xlDown)).Copy _
Sheets("FHA").Range("E" & Rows.Count).End(xlUp)
Sheets(i).Range(Sheets(i).Range("B1").Offset(1), Sheets(i).Range("H1").End(xlDown)).Copy _
Sheets("FHA").Range("F" & Rows.Count).End(xlUp)
Sheets(i).Range(Sheets(i).Range("C1").Offset(1), Sheets(i).Range("H1").End(xlDown)).Copy _
Sheets("FHA").Range("G" & Rows.Count).End(xlUp)
Sheets(i).Range(Sheets(i).Range("N1").Offset(1), Sheets(i).Range("H1").End(xlDown)).Copy _
Sheets("FHA").Range("H" & Rows.Count).End(xlUp)
wks.UsedRange.AutoFilter
End If
i = i + 1
Next
Application.ScreenUpdating = True
End Sub
該解決方案是完美的補充。只是一個問題,是否有可能讓它去搜索多個代碼值。除此之外,我剛發現如果失敗模式和原因的值是'繼續',那麼我需要從上面的單元格中獲取值。這將不得不循環,直到找到不是'繼續'的值 – SeanBaird
您可以通過循環主進程代碼並每次更改'SearchTarget'來搜索多個代碼值。這就是爲什麼它在主循環外部以允許可擴展性。 對於進一步的功能,你需要添加一個檢查循環,看看如果值是'繼續',如果它是通過'SourceCell.Row - 我'在哪裏循環增加,直到值不繼續或我= SourceCell .Row – Tragamor
感謝您回覆我。我上週纔開始使用vba,但每次我嘗試一個循環代碼時,似乎都會導致excel無法響應。 (我假設因爲我可能設置了一個無限循環或其他東西) – SeanBaird