vba 比较行与列

vba compare row to column

我有一个电子表格,其中 A 列信息从第 6 行开始,并且我有来自此列表的唯一值作为 headers 在第 1 行顶部从 D 列开始。我想要做的是如果 A 列中的单元格匹配 header 行,则将 C 列中单元格中的信息复制到相应的 Header.

原始格式

所需格式

这是我试过的代码,但没有给我想要的结果:

For i = 6 To lastRow
    For j = 4 To lastColumn
      If Cells(i, 1) = Cells(1, j) Then
        wksActRawData.Cells(i, 3).Value = wksActRawData.Cells(i, j).Value
      End If
    Next j
  Next i

假设您确实编写了 lastRow 和 lastColumn 函数,您的代码中唯一的错误是获取单元格值的数据

 If Cells(i, 1) = Cells(1, j) Then
    wksActRawData.Cells(i, 3).Value = wksActRawData.Cells(i, j).Value
 End If

其实应该是反过来的,另外我会加一行来清除旧的价格,如下

  If Cells(i, 1) = Cells(1, j) Then
    Cells(i, j).Value = Cells(i, 3).Value
    Cells(i, 3).ClearContents
  End If

这种方式对我有用