2016-08-12 3 views
1

Ich habe ein Excel-Blatt mit Daten, die ich verketten und verwenden möchte, um eine INI-Datei zu erstellen.Makro zu Zeile kopieren, wenn markiert und verkettet

Es gibt mehrere Spalten mit Daten. Wenn eine Zelle in Spalte D markiert ist, möchte ich, dass sie die Daten in dieser Zeile auf ein anderes Blatt kopiert, aber gleichzeitig möchte ich die Daten in jeder Spalte mit dem verknüpfen Spaltenkopf, siehe unten:

Data Overview

Aus dem Bild oben ich das Makro möchte die Daten in ein anderes Blatt in folgendem Format zu kopieren:

name = Machine 1 

caption = Presentation 

make = Company 1 

model = Model 1 

Ist das möglich?

+0

Haben Sie eine INI-Datei erstellen möchten oder ein Blatt, das wie eine INI-Datei aussieht? – Andreas

+0

Welchen Code haben Sie bisher ausprobiert? – Genie

+0

Andreas - Ich möchte ein Blatt erstellen, das wie eine INI-Datei aussieht, damit ich daraus eine erstellen kann. – user3514907

Antwort

1

Wenn Sie eine Ini-Datei und kein Blatt mit Ini-Look erstellen möchten. Verwenden Sie diesen Code:

LastRow = Range("A" & Rows.Count).End(xlUp).Row 
for i = 3 to LastRow 
If range("A" & i).Interior.ColorIndex = 2 then 
    MyFile = "C:\inifiles\" & Range("C" & i).Value & ".ini" 'Machine 1.ini 
    fnum = FreeFile() 
    Open MyFile For Output As #fnum 
    Print #fnum, "name=" & Range("C" & i).Value 
    Print #fnum, "caption=" & Range("D" & i).Value 
    Print #fnum, "make=" & Range("E" & i).Value 
    Print #fnum, "model=" & Range("F" & i).Value 
    Close #fnum 
End if 
Next i 

Es Schleifen durch alle Zeilen und verwendet die Daten eine Datei mit dem „Namen“, wie der Name der Datei zu erstellen.

EDIT:
Wenn Sie die Blätter mit ini-Look erstellen möchten:

LastRow = Range("A" & Rows.Count).End(xlUp).Row 
For i = 3 To LastRow 
If range("A" & i).Interior.ColorIndex = 2 then 
    Dim ws As Worksheet 
    Set ws = ThisWorkbook.Sheets.Add(After:= _ 
      ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)) 
    ws.Name = Sheets(1).Range("C" & i).Value 
    Sheets(Sheets(1).Range("C" & i).Value).Range("A1") = "name=" & Sheets(1).Range("C" & i).Value 
    Sheets(Sheets(1).Range("C" & i).Value).Range("A2") = "caption=" & Sheets(1).Range("D" & i).Value 
    Sheets(Sheets(1).Range("C" & i).Value).Range("A3") = "make=" & Sheets(1).Range("E" & i).Value 
    Sheets(Sheets(1).Range("C" & i).Value).Range("A4") = "model=" & Sheets(1).Range("F" & i).Value 
End if 
Next i 
Verwandte Themen