При экспорте листа эксель в текстовый файл с разделителями табуляцией (нужно только так) происходит бардак. Большая часть значений получается в кавычках. Экспорт делаю с помощью простого макроса (два макроса точнее, текущий лист и все листы книги). При экспорте файла вручную "Сохранить как..." этого нет. Непонятно что это такое. Этот текстовый файл потом как база данных для другой программы используется, и наличие кавычек нежелательно, а побороть не могу эту напасть. И форматирование удалял и чего только не пытался сделать... самое непонятное, что некоторые значения без кавычек получаются, системы никакой не заметил, почему так, верней вроде есть, где есть запятая, там запись берётся в кавычки, НО при тех же самых условиях, но с сохранением в ручную, нет этих кавычек! (пробовал писать процесс сохранения макрорекордером, в файле нет кавычек, после запуска записанного макроса есть кавычки) Может кто знает откуда это всё берётся? Файл Экселя (исходник) и текстовый файл прилагаю.
Sub Макрос2()
Dim i As Integer, Rng As String, x As Range
Set x = Application.InputBox("Ткните мыхой в ячейку, с которых нужно суммировать.", "Выбираем ячейку...", Type:=8)
Rng = x.Address
ActiveSheet.Range(Rng).ClearContents
For i = 1 To Sheets.Count
With Sheets(i)
If .Name <> "Итоговоый" And .Name <> "Спец лист" And IsNumeric(.Range(Rng)) Then
ActiveSheet.Range(Rng) = ActiveSheet.Range(Rng) + .Range(Rng).Value
End If
End With
Next
End Sub
Данный код позволяет выводить сумму ячеек с одним адресом со всех листов книги в туже ячейку листа на котором запущен (это лист Итог), за искл. двух обозначенных листов, только работает это при выборе одной ячейки, что при необходимости провести подсчёт скажем ячеек 50 теряет смысл, тогда уж через функцию СУММ и затем протягивать ячейку с формулой в нужные стороны, как раз этого и осуществляется попытка избежать. Как сделать так чтобы можно было выделить диапазон и были просуммированы ячейки этого диапазона по отдельности, с выводом результата на лист Итог (где собственно и указывался диапазон)? И второй вопрос, как сделать чтобы те ячейки которые были исключены из расчёта окрашивались в цвет. Это пытался реализовать, но знаний не хватает, после строки ActiveSheet.Range(Rng) = ActiveSheet.Range(Rng) + .Range(Rng).Value добавляю строку : If IsNumeric(.Range(Rng)) <> False Then .Range(Rng).Interior.Color = 255 Закрашиваются ячейки на всех листах (посчитанные) включая Итог, а как раз ячейки на листе где в ячейке что попало и лист Оглавление не красится, меняю <> на =, вообще ничего не закрашивается, с True такаяже петрушка (но конечно со знаками наоборот).
Сам в написании макросов ничего не смыслю, нашёл на одном из форумов подходящий для своих нужд макрос. При его запуске собирает данные из всех файлов находящихся в одной папке и данные с листов с одинаковым названием собирает на такой же лист в открытом файле, заполняя этими данными последовательно этот лист вниз. Но работает данный макрос хитро, все собираемые данные вставляет с сортировкой от последнего. Т.е. при наличии листов с именами 1,2,3... он их выстраивает как ...3,2,1, но это не принципиально, а вот то что данные из файлов с именами 1,2,3... он вставляет в порядке обратном, это уже серьёзно. Прилагаю файл с макросом, может кто чего подскажет?
Доброго времени суток! Периодически возникает проблема (вроде и не критическая но всё же...). Есть книга, в книге на одном из листов есть таблица с данными. В целях исключения шаловливых ручек, создаётся ещё одна книга (файл), создаётся подключение к первой книге, к существующей в ней базе, и во второй книге создаётся сводная таблица. И в этой сводной таблице волшебным образом появляются левые поля, откуда берутся непонятно, имеют имя в виде F21, F22 и т.д. данные поля пустые (т.е. даже при вызове их свойств выводится что этих самых свойств нет). В первоисточнике естественно этих столбцов просто нет! Вроде и не критично, но боюсь замучают вопросами, а это чего? а я сам разобраться не могу и как с этим бороться тоже не могу понять. Помогает создание нового файла, копирование данных таблицы (исключительно выделением на листе) и вставка в новый файл. Кстати, при создании сводной таблицы на отдельном листе первой книги этих полей нет.