vba- все статьи тега


Словарь VBA Excel внутри словаря поздняя привязка

Следующий код завершается ошибкой в инструкции debug Sub Tets() Dim cl_data As Object Set cl_data = CreateObject("Scripting.Dictionary") Dim row As Object Dim irow As Long For irow = 11 To 12 Set row = CreateObject("Scripting.Dictionary") With row row.Add "YN", Cells(irow, 2).Value row.Add "Comment", Cells(irow, 3).Value End With cl_data.Add Cells(irow, 1).Value, row Next irow Debug.Print cl_data(CStr(Cells(irow, 1)))("YN") End Sub Я пытаюсь сохранить данны ...

Извлечение обоих значений из 2 столбца ComboBox VBA

У меня есть форма пользователя (excel, VBA), где есть 2 столбца combobox. Когда пользователь выбирает определенное значение из выпадающего списка, я хочу получить значение, которое он выбрал, и значение, связанное с первым значением (т. е. значение второго столбца). Как мне это сделать? Просто ComboBox1.Value возвращает значение первого столбца. ComboBox1.Value(0) не работает. ...

Как я могу использовать перечисление для проверки в VBA

Я пытаюсь добавить проверку в ячейку, но я хотел бы использовать перечисление в качестве источника. Public Enum account AA BB PP ZZ End Enum Sub Main() With Range("C9").Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, Formula1:= ... End With End Sub Обычно я бы поставил Join(account, ","), если бы счет был массивом, но для перечисления это не работает. И если прямое исп ...

Нажмите enter в текстовом поле и выполните функцию кнопки в VBA

У меня есть форма входа в мою базу данных, выполненная в Access 2010 и использующая код VBA. Я хочу иметь возможность нажать Enter на txtboxPassword и автоматически выполнить событие btnLogin_Click. Я попробовал это: Private Sub txtboxPassword_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then btnLogin_Click End If End Sub То, что я получаю,-это самодельная ошибка, говорящая, что пароль неверен. Если я отлаживаю, я вижу, что на самом деле txtPassword - это null, но я п ...

excel VBA разделить текст

Пожалуйста, имейте в виду, что я работаю с серией ~1000 линейных медицинских информационных баз данных. Из-за размера баз данных ручная обработка данных занимает слишком много времени. Таким образом, я попытался изучить VBA и закодировать макрос Excel 2010 с помощью VBA, чтобы помочь мне выполнить синтаксический анализ определенных данных. Желаемый результат состоит в том, чтобы разделить определенные символы из предоставленной строки на каждой строке базы данных следующим образом: 99204 - ...

Как вызвать функцию по клавише ENTER в Excel с помощью vba

Google должен предоставить мне достаточно примеров, но ни один из них, кажется, не работает Что я хочу: каждый раз, когда пользователь нажимает, а затем отпускает, клавишу ENTER, чтобы моя программа сделала что-то (т. е. создайте MsgBox или вызовите функцию Foo). Я бы предпочел это в форме MWE Что я сделал: я попытался погуглить его, но ни один из примеров не является функциональным. Они компилируются, но ничего не делают. Я также позаботился о сохранении в макросе совместимый формат Exce ...

Передача параметра LPCTSTR вызову API из VBA в PTRSAFE и UNICODE безопасным способом

Я боролся с этим целую неделю. У меня возникли трудности при передаче строковых указателей на функцию DLL. Фон Мы только что начали миграцию в Office 2010 из Office 2003. Некоторые люди будут иметь Office 2003 только в течение следующих нескольких лет. Некоторые люди будут использовать Office 2010 64-разрядный (почему я не знаю - но это другая тема). Для меня-мне нужно сделать некоторый код, который будет работать на всех версиях. Я нашел ... эта функция появилась в интернете несколь ...

Скрытие строк в Excel 2013

Таким образом, я пытаюсь скрыть строки в Excel 2013 с помощью VBA на основе нескольких различных условий: Если заголовок раздела "неиспользуемый", скрыть раздел. Каждый раздел-это именованный диапазон, чтобы сделать это проще. если строка является частью именованного диапазона "Cblank", спрячьте ее. Теперь самое сложное - для каждой ячейки в диапазоне ("CNonTest"), если C. Value = "" и C. Columns(41).Value = "" затем спрячьте их. Диапазон ("CNonTest") находится в Col C дополнительная колонка ...

Как использовать окно "Locals" в VBA IDE

Когда я кодирую VBA в Access 2003, я сохраняю непосредственное окно видимым и использую Debug.Распечатайте и остановитесь, чтобы решить мои проблемы. Но я никогда не знал, как получить помощь от "местных". Я по большей части понимаю, что там внутри. Но обычно кажется, что мне придется копаться в поисках нужного предмета, и это может занять некоторое время, чтобы найти его во всех этих сложенных структурах. (и "Locals" не выводит ничего из встроенных файлов справки VBA. Может быть, я пропу ...

Как скопировать данные из закрытых книг (сохраняя их закрытыми) в главную книгу с помощью VBA

Мне нужна помощь, чтобы скопировать данные из нескольких закрытых книг, не открывая их, в главную книгу с помощью VBA. сегодня я использую функцию Workbooks.откройте для этого, хотя я использую 4-6 файлов для копирования данных, и каждый файл, который нужно открыть, резко замедляет операцию копирования. Мне нужна помощь в использовании эффективного кода VBA для копирования данных без открытия каждого файла. Вот пример моего кода: Set x = Workbooks.Open("C:Bel.xls") 'Now, copoy what you ...

Как написать макрос, чтобы открыть файл excel и вставить данные в файл, содержащий макрос?

У меня есть два файла excel. Один из которых содержит макрос. Другой-это общая рабочая книга. У меня уже есть написанный код. Он открывает общий файл wourkbook и выбирает все данные на указанной вкладке. Единственная проблема заключается в том, что я не знаю, как написать код, который автоматически вставит эти данные в файл с макросом? Sub ImportData_Click() ' open the source workbook and select the source sheet Workbooks.Open Filename:="Test.xlsm" Sheets("Make").Select ' copy the source ra ...

Как я могу дублировать строку в таблице Word?

Я пытаюсь скопировать строку таблицы в Word, используя VBA, без использования объекта выделения или буфера обмена. То есть я хочу новую строку, которая имеет то же содержание, что и существующая строка. Для этого я сначала создаю новую (пустую) строку, перебираю каждую ячейку исходной строки и копирую ее содержимое в соответствующую ячейку целевой строки. Чтобы скопировать каждую ячейку, Я получаю объект Range, который ссылается на все содержимое исходной ячейки, и эквивалент Range для целево ...

vba замена двух кавычек на одну / создание txt файлов

Я создал макрос, который генерирует txt-файлы с данными из каждой строки в excel. У меня проблема с " (кавычки) Вот строка из VBA, которая создает проблемы: wsTemp.Cells(6, 1).Value = "The ""Number"" is " & wsSource.Cells(r, 3).Value Мне это нужно: The "Number" is MYNUMBER Вместо этого я получаю следующее: " The ""Number"" is" MYNUMBER Это тоже не работает: wsTemp.Cells(6, 1).Value = "The" & Chr(34) & "Number"" is " & Chr(34) & wsSource.Cells(r, 3).Val (получил то ...

Access VBA-экспорт формы доступа в PDF, затем закройте Adobe Reader

У меня есть код VBA в Access, который экспортирует / сохраняет 3 отдельные формы доступа в PDF для целей записи. Однако по завершении Adobe Reader открывает сохраненные формы, требуя, чтобы процессор вручную закрыл все 3 формы. 3 формы не звучит как много, но они будут завершать этот процесс непрерывно для всех 239 наших сущностей! Это означает, что они должны будут вручную нажать кнопку Закрыть более 700 раз в день! Вот вам и эффективность. Есть ли код VBA для закрытия PDF-файла в Adobe Rea ...

VBA печать в PDF и сохранение с автоматическим именем файла

У меня есть код, который печатает выбранную область на листе в PDF и позволяет пользователю выбрать папку и имя входного файла. Есть две вещи, которые я хочу сделать, хотя: существует ли способ, которым PDF-файл может создать папку на рабочем столе пользователя и сохранить файл с именем файла, основанным на определенных ячейках листа? Если несколько копий одного и того же листа сохраняются/печатаются в PDF, может ли каждая копия иметь номер, например. 2, 3 в имени файла на основе копии номе ...

2 способа для "ClearContents" на VBA Excel, но 1 работает нормально. Почему? [дубликат]

На этот вопрос уже есть ответ здесь: Почему работает диапазон, но не клетки? 1 ответ Добрый вечер друзья: Я имею в виду 2 способа очистки содержимого в определенном диапазоне ячеек проекта VBA (в MS Excel): Worksheets("SheetName").Range("A1:B10").ClearContents Worksheets("SheetName").Range(Cells(1, 1), Cells(10, 2)).ClearContents Проблема в том, что второй способ показывает мне ошибку '1004' когда ...

Очистка данных с веб-сайта с помощью vba

Я пытаюсь соскрести данные с сайта: http://uk.investing.com/rates-bonds/financial-futures с помощью VBA, как и в режиме реального времени цены, т. е. немецкий 5 год бобло, нам 30-летние казначейские облигации, я пробовал в Excel веб-запрос, но это только царапины весь сайт, но я хотел бы, чтобы очистить уровень только, есть ли способ сделать это? ...

VBA в Excel подключиться к удаленной БД Oracle InstantClient с

Я пытаюсь использовать Excel (в основном 2003, для большей совместимости с пользователем)для подключения к удаленной БД Oracle. Я хотел бы запустить a .скрипт sql и возвращает набор данных на рабочий лист. Я нахожусь на 64-битной машине Windows 7. Я не знаю спецификации сервера Oracle DB. Я хотел бы сохранить это как можно более легким (никаких дополнительных установок файлов на клиентских компьютерах, используйте общие сетевые расположения для необходимых файлов как можно больше) Итак Дале ...

Excel VBA datediff для вычисления месяцев, дней и месяцев вместе?

Я пытаюсь вычислить время, прошедшее с общей суммой месяцев, дней и часов вместе, используя функцию Datediff. Разве это невозможно? DateDiff("d hh", datein, Now) Что я могу сделать? ...

EXCEL/VBA: преобразование логического текста В проверки

Я экспортировал данные из access в excel. Некоторые столбцы содержат логические значения, и excel отображает их как "true"или " false". Не очень читабельно, поэтому я хочу изменить ложные значения на пустые, а истинные значения на "x". Вот код VBA, который я написал: Sub BoolToCheck() Dim myRow As Integer Dim myCol As Integer For myCol = 7 To 38 For myRow = 2 To 458 Select Case Cells(myRow, myCol) Case "TRUE" Cells(myRow, myCol) = "x" Case "FALSE" ...