Мне удалось адаптировать эту ссылку для моего проекта, но я ищу способ дублировать несколько строк. Вот мой запрос:

SELECT data_0.InvoiceNumber, 
       data_0.CustomerNumber, 
       data_0.CustomerName, 
       data_0.Address, 
       data_0.City, 
       data_0.State, 
       data_0.Zip, 
       data_0.Zone, 
       data_0.PartNumber, 
       data_0.PartDescription
FROM bitnami_wordpress.data data_0
WHERE (data_0.InvoiceNumber=?)

Номер invoicenumber - это параметр, который заполняется =Sheet2!$A$4

В идеале я хотел бы ввести свои параметры в столбец A, а столбцы B:K заполнены данными из базы данных, есть ли способ сделать это без настройки запроса для каждой отдельной строки, почти как "Fill Down"?

1 ответ1

0

не могли бы вы рассказать подробнее, я очень неопытен с VBA и mySQL, спасибо!

Как создать функцию массива.

Создать новую рабочую книгу. Откройте редактор VBA. Вставка - Модуль. Скопируйте код ниже:

Option Base 0

Public Function ReturnArray(Optional val As Integer = 1) As Variant()
' Application.Volatile
Dim tmp()
ReDim tmp(1, 1)
tmp(0, 0) = val
tmp(0, 1) = val + 1
tmp(1, 0) = val + 2
tmp(1, 1) = val + 3
ReturnArray = tmp
End Function

Выберите A1:B2 на рабочем листе. Вставьте приведенную ниже формулу в поле формулы:

=ReturnArray()

или же

=ReturnArray(1)

или же

=ReturnArray(C1)

Завершите ввод формулы с помощью Ctrl-Enter, чтобы показать, что это формула массива. Диапазон назначения будет заполнен рассчитанными значениями.

Если вам необходимо пересчитать значения, поскольку исходное значение (ячейка C1 в последней формуле) было изменено, вы должны сделать это вручную, нажав клавишу F9.

Вы можете включить автоматический расчет, оставив комментарий в Application.Volatile - но вы должны помнить, что любое изменение на рабочем листе вызовет пересчет. Если ваш код подключается к внешнему серверу, это может быть очень дорого.

Связь с сервером MySQL не отличается от связи с любым другим сервером БД. Установите соответствующий коннектор MySQL, создайте соответствующий источник данных, используя его, и используйте ADODB для получения / редактирования нужных вам данных. Этот процесс хорошо документирован в MSDN.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .