2014-10-10 3 views
1

Я изучаю VBA на новом задании и был назначен проект, который включает проверку значения примерно в 100 книгах. Значение содержится в той же ячейке (I12) в листе с тем же именем в каждой из 100 книг. Можно ли использовать SQL, чтобы каким-то образом передать значение из одной ячейки каждой книги в переменную, чтобы я мог их сравнить? Мой текущий код открывает каждую из книг для сравнения значений, которые работают, но довольно трудоемкие.Поиск нескольких книг Excel для значений в одной и той же ячейке и том же листе

+0

являются документами фактические книг Excel или CSV-файлов? (sql не ваш ответ, кстати) –

+1

SQL здесь не поможет. Я имею в виду, что вы могли бы использовать SQL для опроса каждой книги, но каждая рабочая книга действует как собственная база данных, поэтому вам нужно будет установить 100 соединений, 100 наборов записей и ... yuck. – JNevill

ответ

1

Если это всего лишь одна ячейка, вы можете попробовать ExecuteExcel4Macro?
Что-то вроде:

Sub Test() 
    Dim fexcel 
    Dim fpath As String, fval As String, aval 
    fpath = "C:\Users\User.Name\FolderName\" '~~> change to suit 
    fexcel = Dir(fpath, vbNormal) 
    Do While fexcel <> "" 
     '~~> Sheet1 should be the sheet name, R12C9 is I12 in R1C1 notation 
     fval = "'" & fpath & "[" & fexcel & "]Sheet1'!R12C9" 
     aval = ExecuteExcel4Macro(fval) 
     '~~> Do your comparison here or dump information in an array 
     fexcel = Dir 
    Loop 
End Sub 
Смежные вопросы