VBA - итерации по диапазону ячеек данных в Excel - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь написать оператор INSERT для базы данных SQL. Я собираю данные из ячеек Excel, используя VBA

Я уже собрал имена столбцов в строку.

Вот как я собираю данные и вывод в окне локальных пользователей.

 data_vals = Sheets("Main").Range("A2", "C3")

data_vals in debug view

Поскольку я пишу оператор INSERT, мне нужно перебирать каждую строку, по одной за раз. Окончательный оператор вставки должен выглядеть следующим образом:

strSQL = "INSERT INTO" & tbl_name & "(" & column_vals & ") VALUES" & value_string

value_string должно быть = "(row1cell1, row1cell2, row1cell3), (row2cell1, row2cell2, row2cell3)"

Мне не нужно знать, как создать всю строку. Зная, как я могу сделать двойной цикл for, который перебирает строки, ячеек в каждой строке будет достаточно Я довольно новичок в VBA.

1 Ответ

0 голосов
/ 15 сентября 2018

вы можете:

  • циклически проходить по Rows диапазонам вашего Range

  • использовать Value свойство в каждом диапазоне строкчтобы получить массив его значений

  • используйте функцию Join () для объединения этих значений

  • используйте оператор & и добавьте еще несколько символоввам нужно

следующим образом:

    Dim row As Range
    Dim value_string As String
    For Each row In Sheets("Main").Range("A2", "C3").Rows
        value_string = value_string & "(" & Join(Application.Transpose(Application.Transpose(row.Value)), ",") & "),"
    Next
    value_string = Left(value_string, Len(value_string) - 1) ' get the last "," off your string
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...