Макрос Excel — Обновление информации на основе стандартного соглашения об идентификаторах/именах

#excel #vba

#превосходить #vba

Вопрос:

Я пытаюсь написать макрос для обновления календаря, прочитав стандартное соглашение об именовании события, а затем обновив квартал, когда произойдет это событие. Например: Если в календаре за предыдущий год был помечен Стандартный идентификатор (A1) События(B1) Квартал(C1) 10001(A2) Событие 1(B2) Q2(C2), А Информация для календаря следующего года загружена на рабочий лист в той же книге с надписью Стандартный идентификатор (A1) События (B1) Квартал (C1) 10001 (A2) Событие 1 (B2) Q4(C2) Я хотел бы, чтобы макрос мог распознать, что два события имеют общий стандартный идентификатор, и обновить Q2 до Q4 с новой информацией. Это упрощенная версия, и в календарь заносится гораздо больше информации, поэтому проще обновлять старую версию, чем каждый год начинать с нуля. Вот как выглядит мой код, но он не работает.

 Dim RISCCalendarMacroTest As Workbook  Dim RBUView As Worksheet  Dim MacroTesting As Worksheet   Set RBUView = RISCCalendarMacroTest.RBUView  Set MacroTesting = RISCCalendarMacroTest.MacroTesting  For j = 1 To 2000  For i = 1 To 2000  If Trim(RBUView.Cells(j, 1)) = vbNullString Then Exit For  If RBUView.Cells(j, 1).Value = MacroTesting.Cells(i, 1).Value Then  MacroTesting.Cells(i, 5).Value = RBUView.Cells(j, 5).Value  End If  Next  Next   MsgBox ("Data Transfer Successful")  

Я совсем новичок во всем этом и, возможно, упускаю некоторые ключевые основы, но если бы кто-нибудь мог дать ответ на этот вопрос, это было бы очень полезно. Спасибо

Комментарии:

1. Добро пожаловать в SO. не работает в целом не является полезным описанием вашей проблемы, как это не работает? Есть ли какая-то ошибка? Если да, то в какой строке это произошло и каков код/описание ошибки? Если ошибки нет, то как это не работает?

2. Cells(j, 5) это столбец E , это та информация, которую вы хотите скопировать ?

3. Итак, в своем описании вы сказали, что для каждой строки на листе следующего года, если идентификатор (col A) совпадает с идентификатором в предыдущем году, затем обновите значение в col C до значения следующего года? Если я правильно понимаю ваш код, то почему вы обновляете значение в col E?

4. Извините, если мой первоначальный пост был ясен. Между стандартным названием и кварталом, подлежащим обновлению, есть несколько дополнительных полей, но они содержат конфиденциальную информацию, поэтому я их опустил, но, да, по сути, я пытаюсь обновить информацию из столбца E на одном листе в столбец E на другом на основе стандартного имени. Установите RBUView = RISCCalendarMacroTest.RBUView Я получаю сообщение об ошибке, начинающееся с этой строки, и получаю сообщение об ошибке объект не поддерживает это свойство или метод.

5. Я пытаюсь обновить информацию на листе под названием RBUView на основе информации на листе макротестирования.