将基质重新粘贴到其他基质上

时间:2013-11-27 10:51:00

标签: excel excel-vba vba

我是VBA的完全新手,但我在文件中有几千行数据,我认为宏是解决我问题的唯一可行方法。

以下是我的问题的说明:

enter image description here

我想:

  1. 从特定范围A2:E5逐行复制所有细节单元格到一个新列(可以在另一个工作表中

  2. 将数据从第1点范围内指定的列(列FG)复制到执行第1点后收到的相应行

1 个答案:

答案 0 :(得分:1)

你可以在没有VBA的情况下解决这个问题,以聪明的方式使用普通的Excel公式:

  1. 创建一个包含6列,标题行和10行的表格(根据您的数据调整行数!)。例如,假设您将表放在J1:O11
  2. 现在将以下公式添加到第2行中的每一列,然后将其复制到第11行:
    1. 列J(“源行”):=IF(ISTEXT(J1),1,IF(K1=L1,J1+1,J1)) - 这将确定每条记录的源行
    2. 列K(“列数”):=IF(J2<>J1,COUNTA(OFFSET($A$1,J2,0,1,5)),K1) - 计算源行中标签数量(X1,X2等)
    3. L栏(“来源栏目”):=IF(J2<>J1,1,L1+1) - 这决定了当前记录的列
    4. M列(“标签”):=INDEX($A$2:$E$5,J2,L2) - 检索标签(X1,X2等)
    5. 第N列(“Value1”):=INDEX($F$2:$F$5,J2) - 这将检索第一个值(AA,CC)
    6. 列O(“Value2”):=INDEX($G$2:$G$5,J2) - 这将检索第二个值(BB,DD)
  3. 完成!

    以下是截图示例: enter image description here

    在这里,您可以下载sample workbook