그래서 몇 가지 답변 된 VBA 질문을 살펴 보았습니다. 세 장의 "By_Oppt_ID", "Top_Bottom"및 "Non_Top_Bottom"이 있습니다. 처음 두 개는 각각 고유 한 이름을 가진 대량의 컬럼을가집니다. 이제 By_Oppt_ID에 "Top_Bottom"에없는 일부 열이 있습니다. 따라서 By_Oppt_ID의 각 열 이름을 "Top_Bottom"의 모든 열 이름과 비교하고 열 이름을 찾을 수없는 경우 해당 열 이름과 그 아래의 모든 행을 세 번째 워크 시트 "Non_Top_Bottom"에 복사합니다. 그래서 저는 여기에있는 내용은 다음과 같습니다VBA. 두 개의 개별 워크 시트에있는 열 이름 값을 비교하여 일치하지 않는 열을 세 번째 워크 시트에 복사하십시오.
Sub Copy_Rows_If()
Dim Range_1 As Worksheet, Range_2 As Worksheet
Dim c As Range
Set Range_1 = Workbooks("Complete_Last_Six_Months_Q_Results.xlsx").Sheets("Top_Bottom")
Set Range_2 = Workbooks("Complete_Last_Six_Months_Q_Results.xlsx").Sheets("By_Oppt_ID")
Application.ScreenUpdating = False ' Stays on the same screen even if referencing different worksheets
For Each c In Range_2.Range("A2:LX2")
' Checks for values not in Range_1
If Application.WorksheetFunction.CountIf(Range_1.Range("A1:CR1"), c.Value) = 0 Then
' If not, copies rows to new worksheet
' LR = .Cells(Row.Count, c).End(xUp).Row
c = ActiveCell
Sheets("By_Oppt_ID").Range("Activecell", "ActiveCell.End(xlDown)").Copy Destination:=Workbooks("Complete_Last_Six_Months_Q_Results.xlsx").Sheets("Non_Top_Bottom").Range("A1:A6745")
Set rgPaste = rgPaste.Offset(0, 1) 'Moves to the next col, but starts at the same row position
End If
Next c
End Sub
나는이 여러 가지를 컴파일 오류가 일련의 계속 표시 : 첨자 범위 출력/방법 "Global_Range"실패. 내가 도대체 뭘 잘못하고있는 겁니까?
에 다음 줄 코드는 무엇을 하는가를 변경할 수 있습니다? 실패한 부분은 어디입니까? 무슨 일 이니? –