#vba #if-statement #excel-formula #xlookup
Вопрос:
Нужен обзор логики. 2 рабочие книги (на данный момент) по 5 листов в каждой. флаг мастера школы с делами, найденными при экспорте RC HH командой, вставьте столбцы для хранителей со слушателями, чтобы уменьшить отфильтрованные данные и объединить точное совпадение, установленные для поиска в исходном файле, необходимо выполнить сопоставление файла dst с файлом src и заполнить файл dst с помощью файла src, если он есть, не перезаписывайте существующие данные в столбце CMR в файле dst, только адреса строк, используемых на соответствующих листах для сохранения данных файлы src и dst хранятся в sharepoint, microsoft не может напрямую открыть эти файлы через vba. необходимо убедиться, что соответствующие файлы открыты на рабочем столе пользователя, чтобы это работало, и никакие другие пользователи не подключались во время выполнения среды office 365
Sub Trial() Dim src As String Dim dst As String Dim wbSource As Workbook Dim wbDest As Workbook Dim ALERT As String Dim Concatenate As String Dim FILLDATA As String Dim SOURCE As String Dim Head1 As String Dim Head2 As String Dim Check As Range Dim r As Long Dim lastrow2 As Long Dim lastrow As Long Dim N As Long src = "RC_SCH_SORTED_TODAY.xlsx" dst = "Copy Fall 2021_Schools_master list_8.24.21.xlsx" ALERT = "ALERT-RC-Match" Concatenate = "=RC[-47]amp;""-""amp;RC[-46]amp;""-""amp;RC[-45]" Head1 = "FLAG FOR PULL FROM RC EXPORT" Head2 = "Concatenated Search" FILLDATAMS = "=XLOOKUP(@AX:AX,wbSource[[#RC SPARKS],[Concatenated Search]],wbDest[[#SPARKS],[CMR'#]],,0) " FILLDATADC = "=XLOOKUP(@AX:AX,wbSource[[#RC DC],[Concatenated Search]],wbDest[[#DC],[CMR'#]],,0) " FILLDATADR = "=XLOOKUP(@AX:AX,wbSource[[#RC Danielle],[Concatenated Search]],wbDest[[#Danielle],[CMR'#]],,0) " FILLDATANC = "=XLOOKUP(@AX:AX,wbSource[[#RC Natalie],[Concatenated Search]],wbDest[[#Natalie],[CMR'#]],,0) " FILLDATAGH = "=XLOOKUP(@AX:AX,wbSource[[#RC Gabe],[Concatenated Search]],wbDest[[#Gabe],[CMR'#]],,0) " Set wbSource = Workbooks(src) Set wbDest = Workbooks(dst) Workbooks(src).Activate Workbooks(dst).Activate ' sparks's team workload Sheets("SPARKS").Select Range("AW1").Value = Head1 Range("AX1").Value = Head2 Application.ScreenUpdating = False lastrow = Worksheets("SPARKS").UsedRange.Rows.Count N = Cells(Rows.Count, "C").End(x1Up).Row Range("AX2:AX" amp; N).Formula2R1C1 = Concatenate For r = lastrow To 2 Step -1 If Worksheets("SPARKS").Range("AF" amp; r).Value = "" Then Worksheets("SPARKS").Cells("AF").Value = FILLDATAMS amp; Worksheets("SPARKS").Cells("AW") = ALERT Else End If Next r Application.ScreenUpdating = True
разрыв в логике внутри if/then повторяется среди других листов для их соответствующих источников, и я застрял на логике. Я формально не обучен, но мне было поручено разобраться в этом. У меня есть несколько других книг для выполнения аналогичных функций, в том числе для консолидации данных в группах поддержки.
Комментарии:
1. Не могли бы вы уточнить, о чем вы спрашиваете? Весь первый абзац состоит в основном из одного предложения…
2. Я запыхалась, пытаясь прочесть все предложение целиком. Пожалуйста, отредактируйте свой вопрос и уточните, в чем именно заключается ваша проблема. Если возможно, пожалуйста, предоставьте скриншот ваших данных и укажите, что вы ожидаете от кода.
3. @Raymond WU. Извини, что я долго болтаю. Я сравниваю записи в разных книгах, которые содержат похожие данные для нескольких команд. в файле назначения В некоторых записях уже будет заполнено поле «CMR». Я хочу вставить xlookup «FILLDATAxx» в этот столбец и в файл dest ТОЛЬКО для тех, кто не заполнен вручную, И поместить»ПРЕДУПРЕЖДЕНИЕ» в столбец AW для вставки записи, поскольку результат вставленной формулы идентичен ранее существовавшим данным. для этого нужен визуальный триггер для конечных пользователей
4. @Брюсуэйн. когда я отлаживаю код, он прерывается в состоянии If/Then и часто прерывается в «N = Ячейках(строках. Количество, «C»).Конец(x1Up).Строка» очевидно, что еще не в производстве
5. @Джонатан, какую ошибку ты получил? (код ошибки, описание и какая строка)