Змінюй хід війни! Допомагай ЗСУ!

Бесплатные консультации по Excel

в одной строке разобраться не хочешь, а про учебники разговор завел..
 
приветствую.
есть макрос, который копирует каждый лист в отдельную книгу и сохраняет ее в текущей папке. исходный документ в формате Excel 2003, установлен Office 2010. все работает отлично, только вот файлы сохраняются в формате Excel 2007-2010, а хотелось бы в формате Excel 2003 для совместимости.
можно ли сделать сохранение в формате Excel 2003.
сразу говорю, замена в макросе ".xlsx" на ".xls" не помогает.

Sub SplitSheets2()
Dim s As Worksheet
Dim wb as Workbook
Set wb = ActiveWorkbook
For Each s In wb.Worksheets 'проходим по всем листам активной книги
s.Copy 'сохраняем лист как новый файл
ActiveWorkbook.SaveAs wb.Path & "\" & s.Name & ".xlsx" 'сохраняем файл
Next
End Sub
 
приветствую.
есть макрос, который копирует каждый лист в отдельную книгу и сохраняет ее в текущей папке. исходный документ в формате Excel 2003, установлен Office 2010. все работает отлично, только вот файлы сохраняются в формате Excel 2007-2010, а хотелось бы в формате Excel 2003 для совместимости.
можно ли сделать сохранение в формате Excel 2003.
сразу говорю, замена в макросе ".xlsx" на ".xls" не помогает.

Sub SplitSheets2()
Dim s As Worksheet
Dim wb as Workbook
Set wb = ActiveWorkbook
For Each s In wb.Worksheets 'проходим по всем листам активной книги
s.Copy 'сохраняем лист как новый файл
ActiveWorkbook.SaveAs wb.Path & "\" & s.Name & ".xlsx" 'сохраняем файл
Next
End Sub

fileformat - отвечает за формат, в котором сохраняется файл.

как вариант:
With Application.FileDialog(msoFileDialogSaveAs)
.InitialFileName = FName
If .Show = 0 Then Exit Sub
ActiveWorkbook.SaveAs Filename:=.SelectedItems(1)
End With

вызывает окно сохранения файла, в котором можно выбрать вариант формата файла.
 
fileformat - отвечает за формат, в котором сохраняется файл.

как вариант:
With Application.FileDialog(msoFileDialogSaveAs)
.InitialFileName = FName
If .Show = 0 Then Exit Sub
ActiveWorkbook.SaveAs Filename:=.SelectedItems(1)
End With

вызывает окно сохранения файла, в котором можно выбрать вариант формата файла.

нее, так не годиться, мой макрос уже все сделал - создал, скопировал и сохранил. мне и так приходится каждую книгу пересохранять через "сохранить как".
нужно всего-лишь как-то установить формат сохранения в макросе
 
нее, так не годиться, мой макрос уже все сделал - создал, скопировал и сохранил. мне и так приходится каждую книгу пересохранять через "сохранить как".
нужно всего-лишь как-то установить формат сохранения в макросе

используйте после задаваемого имени:

fileformat:= "ИмяФормата"

Увы не знаю наименования формата который сохраняет в нужном офисе.
 
используйте после задаваемого имени:

fileformat:= "ИмяФормата"

Увы не знаю наименования формата который сохраняет в нужном офисе.

СПАСИБО!!!
действительно, через запятую у функции ActiveWorkbook.SaveAs есть куча параметров, одним из которых является fileformat:=
выглядит это так

ActiveWorkbook.SaveAs wb.Path & "\" & s.Name & ".xls", FileFormat:=xlExcel8
 
Ребята, подскажите, имеем формулу:

=СУММ('1:50'!A2)

Как сделать чтобы формула формула не просто плюсовала все значения, а выборочно по критерию.

Например в ячейке А2 критерий. От 1 до 5

и чтобы суммировало только по критерию 2.
тоесть если в А2 2 то берез число для суммы

СУММЕСЛИ для одного критерия и СУММЕСЛИМН для двух и более критериев суммирования
 
Попробуйте так: на каждом листе вычисляете отдельно по этой формуле, а затем суммируете эти результаты.
 
угу, это понятно

но может среди нас есть мега мозг?

чтобы простая формула была.

чтобы если еще листы добавлять то хомяки просто в формуле меняли количество листов.

хотя я думаю хомяк может и +суммесли дописать

тогда VBA....
 
если не сложно, в двух словах...
нам же просто формулы с автоматическим вычислением нужно

Пользовательская функция суммирования по критерию по всем листам книги.

Структура таблиц на листах должна быть одинаковая либо прописать механизм "определения" таблицы.

Функцию привязать к алгоритму перебора всех листов книги.
 
ребята, у кого какие мысли почему не работает эта формула?

=СУММЕСЛИМН('1:5'!B3;'1:5'!A1;=1)

у меня уже крыша едет

"Вычислить формулу" на вкладке Формулы может помочь.

P.S. Что вот этим хотели отобразить - '1:5' ??

599ae599c209.png


P.S.S. условие "=1" - НЕДОПУСТИМОЕ
 
Останнє редагування:
1:5 это диапазон листов

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

допускается ссылка только в пределах одного листа. (об этом писалось выше).

использовать данную функцию для нескольких листов - нельзя.
 
Minenko_VI, можно узнать ваше мнение?

Как бы вы подошли к такому вычислению?

уже

p.s. уточнение: реализуется через VBA

p.s.s.или же поискать решение на просторах интернета - не думаю что Вы первый столкнулись с такой задачей.
 
В декларации модуля обьявляешь:
Dim f As Boolean

В начале функции пишешь проверку этой переменной.
If f = False Then Exit Function

Если надо что бы вычисления производились - меняешь значение этой переменной в отдельной процедуре этого модуля:
f = True

P.S. Если хочешь что бы всё было быстро - отказываешься от этого ****окода и пишешь макрос который при нажатии на кнопку проходит по всем листам и вычисляет.. Но это уже совсем другой уровень..:confused:
 
Могу конечно. Но даже при написании маленького макроса хочется кушать, а Ваше спасибо на бутерброд не намажешь..
Будет свободное время, может напишу и бесплатно , но Вы выложите реальный образец экселя..

P.S. Вашу задачу можно решить формулами на каждом листе, а затем собрать результаты на один лист, элементарной формулой СУММА..
Но Вы хотите пойти своим путём и делать всё макросом. При соответствующем финансировании это вполне возможно...
 
Останнє редагування:
Для любителей шахмат:

Шахматы 64 - шахматная программа. Если Chessmaster кажется
вам чересчур умным и навороченным, то можно попробовать сыграть
несколько партий с программой Шахматы 64.

Желающие могут посмотреть исходный код.. Оформленно в Вёрде, на языке VBA.
 

Вкладення

Помощь в написании макросов

Подскажите,пожалуйста, можно вас попросить помочь в написании макросов. У нас есть бланки всевозможных заявлений, которые мы сейчас ведем ручками в Excel, хотели бы все автоматизировать. Если Вас это заинтересует, пожалуйста, наберите меня 0954595844 Аня. Работы много, надеюсь Вам будет интересно, а нам полезно) Спасибо
 
Назад
Зверху Знизу