Visual Basic для приложений (VBA) - это управляемый событиями объектно-ориентированный язык программирования для написания макросов, используемый для всего пакета Office, а также для других приложений. VBA не эквивалентен VB.NET или VBS; если вы работаете в Visual Studio, используйте [vb.net]. Если ваш вопрос конкретно касается программирования любого приложения MS Office, также используйте соответствующий тег: [excel], [ms-access], [ms-word], [outlook] или [ms-project].

Подробнее про vba...

Я пытаюсь создать макрос, который должен вставить указанный номер. строк ниже указанного номера строки. Вот что я пробовал до сих пор: Sub Macro2() Dim iRow As Long Dim iCount As Long Dim i, j As Long Dim length As Long arrVal = Array(2, 3, 4) 'no. of rows to add arrTar = Array(18, 19, 20) 'targe....
27 Ноя 2021 в 16:37
У меня проблемы с вложенным циклом Do While и For в VBA. По сути, у меня есть две таблицы. Я пытаюсь повторить каждую строку первой таблицы, сколько бы строк ни было во второй таблице. Количество строк во второй таблице может меняться со временем, поэтому, к сожалению, я не могу жестко запрограмми....
27 Ноя 2021 в 15:53
Я использую следующий простой код для запуска макроса mymacro при щелчке / выборе листа. Private Sub Worksheet_Activate() Call mymacro End sub Когда я выполняю макрос вручную, он работает очень хорошо, но когда я нажимаю на лист, это не так. В основном я использую макрос для изменения цвета диагра....
26 Ноя 2021 в 20:09
Я пишу простой код, показанный ниже, однако excel, похоже, не использует формат чисел [Red] и меняет его на "#. ## 0,00". Есть мысли о том, как это исправить? Я пробовал другие числовые форматы, и мне всегда кажется, что [Красный] не распознается. Кроме того, есть ли способ сократить код, не копиру....
26 Ноя 2021 в 14:29
Следующий код не удаляет дубликаты, что мне не хватает? LastColumn = 10 ws.Range(ws.Cells(1, ws.Range("AY1").Column + LastColumn - 1).Address(), ws.Cells(1, "AY").Address()).RemoveDuplicates Я заменил RemoveDuplicates на .Select, чтобы проверить, был ли выбран исключенный диапазон, и он был выбран....
vba
26 Ноя 2021 в 14:24
Мне сложно ввести индивидуальный идентификационный номер во все мои таблицы, чтобы связать все записи вместе, пытаясь нормализовать. У меня есть таблица EmployeeDetails и таблица LoginDetails . Насколько я понимаю, мне нужно поле с именем EmployeeID на обоих, и я могу использовать код выбора S....
26 Ноя 2021 в 14:06
Загрузка файла из SharePoint с помощью VBA приводит к повреждению файла Привет, работаю над вышеуказанным вопросом. Я пытаюсь загрузить файл с нашей точки доступа Teams на сервер в нашей локальной сети. Однако файл открывается некорректно даже до того, как я попытаюсь его загрузить (см. Мой код ниж....
Я пытаюсь вставить значения массива в диапазон, но он вставляет в диапазон только первое значение. Dim Array1() For i = 0 to 9 ReDim Preserve Array1 Array1(i)= Int((6 * Rnd) + 1) Next ws.Range("A1").Value = Array1 Выход : Я что-то делаю не так?....
26 Ноя 2021 в 13:23
Я уже установил элемент вручную с именем «Test» в классе AllowEditRange. Мне просто нужно изменить диапазон этого элемента с помощью VBA, но я не мог. Я попробовал следующий код, но он ничего не сделал (ошибки не возникли) Спасибо всем, кто может помочь. Option Explicit Option Compare Text Privat....
26 Ноя 2021 в 10:57
Примере: Если у меня есть в A1: яблоко, Апельсин, Виноград, мне бы хотелось, чтобы в B1 отсутствовали названия: Ананас, Маа. Если A2: Виноград, Ананас, то я бы выбрал B2: Яблоко, Апельсин, Маа. Я искал решение в Интернете, но нашел тот же тип только для отсутствующих номеров. Пожалуйста, помогите в....
26 Ноя 2021 в 10:25
Я пытаюсь добавить подпись, но убедитесь, что после нее нельзя добавить другую подпись. Мой метод добавления заключается в объединении HTMLBody и пользовательской подписи на основе HTML. В качестве фона, когда я начинаю писать электронное письмо Outlook, я могу прикрепить к нему подпись, используя ....
25 Ноя 2021 в 20:01
Вот мой код: Sub transposeNumbers() Dim c As Range, LastRow As Long, TopN As Long, LastN As Long LastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row For Each c In ActiveSheet.Range("A2:A" & LastRow) If IsNumeric(c.Offset(-1, 0)) = True Then ....
25 Ноя 2021 в 18:32
У меня есть массив строк, и мне нужно отфильтровать мои данные, где значение в столбце 8 не равно ни одному из значений массива, чтобы удалить целые строки, Я использую следующую строку кода для фильтрации данных, которые хочу сохранить, и она работает нормально: ActiveSheet.Range("A1").AutoFilte....
25 Ноя 2021 в 17:45
У меня есть таблица ниже, в которой я хотел бы использовать макрос (или любой другой метод), чтобы получить следующий результат: Оригинальный стол Ожидаемый результат Проблема, с которой я столкнулся, заключается в том, что в столбце A не будет фиксированного количества строк. Я хотел бы выделить....
25 Ноя 2021 в 12:38
Я импортирую файл csv, в котором есть ссылки на ячейки на листе. Ссылка на ячейку может быть неправильной, потому что пользователь однажды допустил ошибку при вводе ссылки на ячейку (например: вместо «AM1» пользователь написал «AMQ») или что-то другое пошло не так. Проблема в том, что у меня есть б....
25 Ноя 2021 в 04:12
Проблема сузилась до одной строчки. Это проблема между абсолютным и относительным путем. Эта строка работает: PlayWavFile "c: \ TransmissionFile \ AWNP.wav", False Я предпочитаю что-то подобное, но это не работает: PlayWavFile "AWNP.wav", ложь У меня есть волновой файл на диске C и в той же п....
25 Ноя 2021 в 00:33
Я пытаюсь разработать макрос, который добавлял бы даты активных (или ближайших) дат отсутствия на работе к моей подписи. Вид сигнала "Приближающееся ООО". Для этого мне нужно получить такие даты из раздела автоматических ответов. Есть ли способ получить их?....
24 Ноя 2021 в 20:55
У меня есть два столбца, содержащие буквенно-цифровые данные - столбец A в книге1 и столбец A в книге2. Столбец A в книге1 содержит 40 000 строк (содержит повторяющиеся значения, но они необходимы), а столбец A в книге 2 содержит 25 000 строк (содержит уникальные значения). Мне нужно найти, присутс....
24 Ноя 2021 в 20:06
Следующий пример содержит три модуля VBA: два класса и один обычный. После запуска тестов RubberDuck VBA и попытки закрыть Excel Excel зависает при активном использовании ЦП. Однократный запуск тестов не воспроизводит эту проблему каждый раз, но когда я выполняю по крайней мере два запуска, кажетс....
24 Ноя 2021 в 18:34
Я пытаюсь скопировать некоторые конкретные ячейки в новую книгу, которую мне предлагается создать при запуске сценария VBA. Я все время получаю, что Object не поддерживает это свойство или метод на wsI.Range ("Y2: AF2882), что не так с моим кодом? Option Explicit Sub Export1() Dim wbI As Workb....
24 Ноя 2021 в 16:46
У меня есть 2 листа, исходный лист и акцентный лист. Из sourceSheet мне нужно скопировать значения из sourceSheet.Range (Cells (14, 3), Cells (14, 8)) в AcctSheet.range (Cells (2, 11), Cells (7, 11)), однако каждый ячейка из таблицы источников отличается от таблицы документов таким образом, что so....
У меня есть код, который создает книгу путем копирования и перемещения выбранных листов в новую книгу. Первая страница этой новой книги - это итоговая страница. В этой связи я хочу извлечь данные из последующих листов с помощью метода range.value. Однако могу ли я использовать это, например, при ....
24 Ноя 2021 в 15:24
Я сделал следующий скрипт для переименования входящих писем, как правило, в Outlook: Sub RenameMails(MyMail As MailItem) Dim strID As String Dim objMail As Outlook.MailItem strID = MyMail.EntryID Set objMail = Application.Session.GetItemFromID(strID) If Left(objMail.Subject, 4) ....
24 Ноя 2021 в 14:39
У меня есть данные в Excel, например, в одном столбце: 10/15/2021 7:59:42 AM 10/15/2021 7:59:44 AM 10/15/2021 7:59:46 AM . . . 10/16/2021 7:59:42 AM 10/16/2021 7:59:48 AM 10/16/2021 7:59:49 AM Я использовал этот код в VBA для создания двух столбцов, один с датой и один со временем: Sub Comman....
24 Ноя 2021 в 13:04
Я пытался найти способ создать несколько листов с использованием данных определенного столбца. Если в столбце «A» есть несколько повторяющихся записей, тогда отфильтруйте одно значение, создайте новый лист, используя это имя значения, скопируйте все данные и вставьте во вновь добавленный лист. Я не ....
24 Ноя 2021 в 10:43