根据条件复制每列的数据

时间:2013-07-21 13:38:44

标签: excel vba

我的表格中的数据看起来像

A      B      C       D
       1001   1002    1003
Phone  1      1       1
TV     1              1
Remote                1
AC     1      1       1

我想要一个宏,它在另一个表格中提供数据,如

Phone  1001;1002;1003
TV     1001;1003
Remote 1003
AC     1001;1002;1003

分2列

这是样本数据,每次都有不同的列和行,最多可达1000。 所以我需要一个宏来从第一行获取数据,只有相应的单元格中有“1”。

1 个答案:

答案 0 :(得分:0)

这可能会有所帮助..

Sub Init()
Dim x, y As Integer
Dim s As String
Dim xt As Worksheet

Set xt = Sheets("Sheet2")'----------> you may change this

For y = 2 To 6 '--------------------tv,remote,etc
  s = ""
  For x = 2 To 4 '------------------1001,1002,1003
    If Cells(y, x) = 1 Then
      If Len(s) > 0 Then s = s & "; "
      s = s & Cells(1, x)
    End If
  Next
  xt.Cells(y, 1) = Cells(y, 1)
  xt.Cells(y, 2) = s
Next
End Sub