Порядок операций с оператором WITH, оператором IF и формулой VLOOKUP в VBA - PullRequest
0 голосов
/ 15 мая 2018

Работая над этим процессом, где я должен взять формулы (в основном формулы VLOOKUP), перечисленные в верхней строке этого раздела, выполнить и найти / заменить, удалить апостроф, помещенный перед формулой, и перетащить формулу вниз в соответствующие строки.Процесс выглядит следующим образом:

  1. Скопируйте формулы в ячейки AT1: BZ1 и вставьте их в AT4: BZ4
  2. Если ячейка содержит «Имя сводного отчета за последние недели», замените его на«Название сводного отчета за последние недели».(35 замен)
  3. Если ячейка содержит «Имя итогового отчета за последние недели», замените его на «Имя итогового отчета за последние недели».(3 замены)
  4. Если ячейка имеет апостроф в качестве первого символа, удалите его.
  5. Нажмите и перетащите все формулы в строку 5000.
  6. Скопируйте все ячейки в массиве и вставьте их как значения (чтобы уменьшить размер файла)

ЯЯ могу выполнить эти шаги индивидуально, но я сталкиваюсь с трудностями при попытке объединить шаги процесса.Я думаю, что моя проблема связана с порядком, в котором я выполняю эти задачи, а не со знанием того, как вкладывать операторы IF в оператор WITH.Кроме того, у меня возникают трудности при использовании окна Immediate с оператором WITH.Вот что у меня есть:

Dim wb_Final As Workbook, nameFinal As String
Set wb_Final = Workbooks.Open(Filename:=Final_Directory)
nameFinal = wb_Final.Name

Dim wb_Summary As Workbook, nameSummary As String
Set wb_Summary = Workbooks.Open(Filename:=Summary_Directory)
nameSummary = wb_Summary.Name

wb_Summary.Sheets("Sheets 1").Activate
Range("AT1:BZ1").Copy
Range("AT4:BZ4").PasteSpecial xlPasteAll
Application.CutCopyMode = False
' This is where my problem is:
For Each C In Worksheets("Sheets 1").Range("AT4:BZ4").Cells
'If cell is blank
'Else
     'If LEFT(cell, 1) = "'"
   Replace(cell, "'", "")

и т. Д.

Я попробовал другой подход к этому процессу, который можно увидеть здесь .Этот процесс имеет для меня больше смысла, но выдает ошибку, которую я не могу понять.

Я также думал об определении диапазона, создании DO UNTIL IS NOTHING и циклическом его прохождении.

Любая помощь будет принята с благодарностью :)

...