2017-01-26 18 views
-3

2枚あります。ワイヤとBOM。Excel vba - セルを複素数値に置き換える方法

WIRES次のようになります。

| Ltg-Nr_ | Kurzname | Pin | Kurzname | Pin | Farbe | 
|---------|----------|-----|----------|-----|-------| 
| 712001 | AJ4  | 11 | LSTS  | 7 | GE | 
| 712002 | AJ4  | 10 | LSTS  | 8 | SW | 
| 712003 | KM_23.1 | 1 | KM_12.4 | 1 | BR | 
| 712004 | AJ4  | 19 | GSR2  | 2 | GN | 
| 712005 | AJ4  | 18 | GSR2  | 1 | SW | 
| 712006 | AJ4  | 46 | CR_31AB | 1 | BR | 
| 712007 | AJ4  | 49 | CR_CANP | 1 | OR/SW | 
| 712008 | AJ4  | 50 | CR_CANM | 1 | OR/BR | 

BOMは、次のようになります。

| Con | 
|------| 
| GSR2 | 
| AJ4 | 

私はシートWIRESに、シートBOMの行からの各値を検索するために、Excelでマクロをしたいです、そしてそれはvalue_ "cell_in_front_of_it"で置き換えるべき値を見つける。その後、細胞の前に1を置き換えた。 たとえば、シートワイアでGSR2を検索し、GSR2でGSR2_2を再検索する必要があります。次の行は、GSR2をGSR2_1で置き換えます。 は、私は、テーブルには次のようになりたいマクロを実行した後:

| Ltg-Nr_ | Kurzname | Pin | Kurzname | Pin | Farbe | 
|---------|----------|-----|----------|-----|-------| 
| 712001 | AJ4  | 11 | LSTS  | 7 | GE | 
| 712002 | AJ4  | 10 | LSTS  | 8 | SW | 
| 712003 | KM_23.1 | 1 | KM_12.4 | 1 | BR | 
| 712004 | AJ4  | 19 | "GSR2_2" | "1" | GN | 
| 712005 | AJ4  | 18 | "GSR2_1" | "1" | SW | 
| 712006 | AJ4  | 46 | CR_31AB | 1 | BR | 
| 712007 | AJ4  | 49 | CR_CANP | 1 | OR/SW | 
| 712008 | AJ4  | 50 | CR_CANM | 1 | OR/BR | 

私はこれを試してみました:

私はこのような何か試してみました:私はこれを作った、そしてそれは私とまったく働いていた

Sub Macro1() 
' 
' Macro1 Macro 
' 

' 
Dim Col As Integer 
Dim Row As Integer 

For Col = 2 To 4 
    For Row = 2 To 10 
    colo = Row + 1 
    Rows = Row + 1 
    Sheets("WIRES").Columns(2).Replace What:=Sheets("BOM").Cells(Row, 1).Text, Replacement:=Sheets("WIRES").Cells(Row, 2).Text & "_" & Sheets("WIRES").Cells(Rows, colo).Text, LookAt:=xlWhole, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
    Next Row 
Next Col 

End Sub 
+0

スタックオーバーフローは私のサイトのコードではありません。何を試しましたか?あなたが試したコードに特有の問題はどこにありますか? –

+0

私は質問を編集しました。私は新しいですが、エディタをうまく使う方法はまだ分かりません。 –

+0

どうしたのですか?これを実装することであなたが抱えている問題は*正確に*何ですか? –

答えて

0

を欲しかった あなたの答えをありがとう。

Dim roww, rowb As Integer 
For roww = 2 To 150 
    For rowb = 1 To 10 

     Sheets("WIRES").Select 
     Cells(roww, 2).Select 

     If Selection.Value = Sheets("BOM").Cells(rowb, 1).Value Then 
       Selection.Value = Selection.Value & "_" & Selection.Offset(0, 1) 
       Selection.Offset(0, 1).Value = "1" 
     End If 

     Sheets("WIRES").Select 
     Cells(roww, 4).Select 

     If Selection.Value = Sheets("BOM").Cells(rowb, 1).Value Then 
       Selection.Value = Selection.Value & "_" & Selection.Offset(0, 1) 
       Selection.Offset(0, 1).Value = "1" 
     End If 

    Next rowb 
Next roww 
関連する問題