首页 > 解决方案 > 我想在 Excel VBA 中使用数组和索引比较来自不同工作表的 2 列

问题描述

我对宏很陌生,需要一个满足我要求的解决方案。如果值匹配,我想比较同一工作簿的 2 个不同工作表中的 2 列,然后想将数据从 sheet1 值(列 3,4 和 5)复制并粘贴到 sheet2(列 3,4,5)

目前,我的代码没有让我得到结果,请帮忙

Sub oldtonew()
  Dim Oldoutcome(1000) As Variant
  Dim newoutcome(1000) As Variant
  Dim I As Integer
  Dim PA1(1000) As String
  Dim PA2(1000) As String
  Dim PA3(1000) As String
  Dim AR(1000) As Variant
  Searchrow = 2
  Sheets("old").Select
  newoutcome(Searchrow) = "Architectural Model"
  'ActiveSheet.Range("S" & Searchrow).Value

   Do Until ActiveSheet.Range("AK" & Searchrow) = ""
     Oldoutcome(Searchrow) = ActiveSheet.Range("AK" & Searchrow).Value
     AR(Searchrow) = ActiveSheet.Range("X" & Searchrow).Value
     PA1(Searchrow) = ActiveSheet.Range("AR" & Searchrow).Value
     PA2(Searchrow) = ActiveSheet.Range("AS" & Searchrow).Value
     PA3(Searchrow) = ActiveSheet.Range("AT" & Searchrow).Value
     If InStr(Oldoutcome(Searchrow), newoutcome(Searchrow)) > 1 Then
       ActiveSheet.Range("Y" & Searchrow).Value = AR(Searchrow)
       ActiveSheet.Range("Z" & Searchrow).Value = PA1(Searchrow)
       ActiveSheet.Range("AA" & Searchrow).Value = PA2(Searchrow)
       ActiveSheet.Range("AB" & Searchrow).Value = PA3(Searchrow)
     End If
     Searchrow = Searchrow + 1
   Loop

   Sheets("Assessment").Select
   Do Until ActiveSheet.Range("S" & Searchrow) = ""
     ActiveSheet.Range("Y" & Searchrow).Value = AR(Index)
     ActiveSheet.Range("Z" & Searchrow).Value = PA1(Index)
     ActiveSheet.Range("AA" & Searchrow).Value = PA2(Index)
     ActiveSheet.Range("AB" & Searchrow).Value = PA3(Index)
     End If
     Searchrow = Searchrow + 1
   Loop
 End Sub

标签: excelvba

解决方案


推荐阅读