Использование относительной ссылки для ссылки на лист VBA - PullRequest
0 голосов
/ 18 февраля 2020

Я относительно новичок в VBA и создал макрос для копирования некоторых данных с помощью vlookup. Затем проверка по исходным данным. Я использовал al oop для проверки (что было очень медленно), поэтому я пробую новый метод. Я хочу запустить марко на 30 разных листах. Но как сделать ссылку на лист относительной?

Это часть, которую я сейчас пытаюсь отредактировать:

    Sub IFMACRO()IFMACRO Macro
    ActiveCell.FormulaR1C1 = _
        "=IF(LEFT(RC[-6],4)=LEFT(Advocacy!R9C[-4],4),IF(ISNA(VLOOKUP('Q1 Actuals CJ'!RC[-6],Advocacy!C[-4]:C[12],11,FALSE))=TRUE,""TO BE ADDED"",""""),"""")"
    Range("H3").Select
    Selection.AutoFill Destination:=Range("H3:H437")
    Range("H3:H437").Select
    Range("I5").Select
End Sub

Как мне изменить Advocacy! лист к относительной ссылке?

для справки вот как выглядит весь макрос:

Sub actdatacompare()

    ActiveCell.FormulaR1C1 = "=IFNA(VLOOKUP(RC4,'Q1 Actuals CJ'!C2:C5,2,FALSE),0)"
    ActiveCell.Select
    Selection.Copy
    ActiveCell.Offset(0, 1).Range("A1:B1").Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    ActiveCell.Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=IFNA(VLOOKUP(RC4,'Q1 Actuals CJ'!C2:C5,3,FALSE),0)"
    ActiveCell.Offset(0, 1).Range("A1").Select
    ActiveCell.FormulaR1C1 = "=IFNA(VLOOKUP(RC4,'Q1 Actuals CJ'!C2:C5,4,FALSE),0)"
    ActiveCell.Offset(1, 0).Range("A1").Select



    ActiveCell.Offset(-1, -2).Range("A1:C1").Select
    Selection.Copy
    ActiveCell.Offset(1, 0).Range("A1:A335").Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    ActiveWindow.SmallScroll Down:=-33
    ActiveCell.Offset(-1, 0).Range("A1:C1").Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveCell.Range("A1:C336").Select
    Application.CutCopyMode = False
    ActiveCell.Offset(336, 3).Range("A1").Select
    ActiveWindow.SmallScroll Down:=-42
    ActiveCell.Offset(-336, -3).Range("A1:C336").Select
    Selection.Copy
    ActiveWindow.SmallScroll Down:=-39
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveCell.Select
    Application.CutCopyMode = False




    If Application.WorksheetFunction.Round(Application.WorksheetFunction.SumIf(Worksheets("Q1 Actuals CJ").Range("G:G"), Left(Cells(9, 4), 4), Worksheets("Q1 Actuals CJ").Range("F:F")), 2) = Cells(345, 19) Then MsgBox "Data updated and matched" 

        Else
    Worksheets("Q1 Actuals CJ").Range("H3:H1300").Formula = "=IF(LEFT(RC[-6],4)=LEFT("Activesheet.Name & "!R9C[-4],4),IF(ISNA(VLOOKUP('Q1 Actuals CJ'!RC[-6],'"Activesheet.Name &"'!C[-4]:C[12],11,FALSE))=TRUE,""TO BE ADDED"",""""),"""")"

        Sheets("Q1 Actuals CJ").Select


        ActiveSheet.Range("A2:z2").AutoFilter Field:=8, Criteria1:="<>"
    ActiveCell.Offset(2, 0).Range("A1").Select

         MsgBox "There are new codes not included on this data sheet. Refer to data tab"

        End If

        End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...