Попробовал внести изменения предложенные Андреем VG макрос выдал ошибку - не совпадение типов. Что не так? не так - не оформляете код в сообщении (кнопка <...>) [МОДЕРАТОР]
Код
Next
sSQL = Join(SheetsNames, " UNION ALL ")
'формируем кэш по таблицам с листов из SheetsNames
With ActiveWorkbook
ReDim arSQL(1 To (UBound(SheetsNames) + 1))
For i = LBound(SheetsNames) To UBound(SheetsNames)
arSQL(i + 1) = "SELECT * FROM [" & SheetsNames(i) & "$]"
Next i
Set objRS = CreateObject("ADODB.Recordset")
objRS.Open sSQL, Join$(arSQL, " UNION ALL "), _
Join$(Array("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=", _
.FullName, ";Extended Properties=""Excel 8.0;"""), vbNullString)
End With
Такое ощущение, что данный макрос написан для сбора с четырех листов: Альфа, Бета, Гамма и Дельта. Пытаюсь переименовать - макрос выдает ошибку, добавляю лист - опять ошибка.
Облазил все что можно, уже думал нашел как обойти, но опять ... ошибка. Заменил
Dim s As String
'Ввод массива имен листов с исходными таблицами
s = InputBox("Имена листов через запятую")
s = Replace(s, ", ", ",") 'Удаляем возможные пробелы после запятой
SheetsNames = Split(s, ",")
Объясните, что не так я делаю и как мне расширить охват на 8 листов? Заранее спасибо.
Вариант описанный vikttur в сообщении #3 очень подходит для моей таблицы, где и так много формул в столбцах. Отдельное ему спасибо за этот вариант! Я не могу понять как Catboyun изменил мой файл, что в нем ячейки стали загораться красным при ошибке?!
Catboyun, отдельный Вам респект! Только я не понял, это формула уже в файле? Я её найти не могу )) Как Вам удалось, чтоб красным выделялась ошибка??! Научите, пожалуйста.
Ребята, помогите! Не могу осилить вопрос, как в двух связанных списках сделать проверку в случаи если работник опосля поменял значение в первом столбце и не поменял значение во втором столбце, в котором осталось значение не подходящее под значение первого столбца? На форумах есть решение для двух ячеек - я его применил для первой строчки, а как его применить для оставшихся строк не знаю.