#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 на основе информации на листе макротестирования.