如果突出显示并连接,则复制行的宏

时间:2016-08-12 08:07:20

标签: excel vba excel-vba

我有一张Excel表格,其中包含我想要连接并用于创建.ini文件的数据。

如果列D中的单元格突出显示,则有多列数据,我希望它将该行中的数据复制到另一个工作表上,但同时我希望它将每列中的数据与列连接起来标题,见下文:

Data Overview

从上图中我想将宏以下列格式将数据复制到另一张表中:

name    = Machine 1

caption = Presentation

make    = Company 1

model   = Model 1

这可能吗?

1 个答案:

答案 0 :(得分:1)

如果要创建ini文件而不是具有ini外观的工作表。使用此代码:

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

循环遍历所有行,并使用数据创建一个文件名为“name”的文件。

编辑:
如果要创建具有ini外观的工作表:

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