Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/65: Рейтинг темы: голосов - 65, средняя оценка - 4.86
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 215
1

Создать новый *.xlsx файл с одним листом и именем Ouput

03.04.2014, 14:02. Показов 12389. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Собственно сабж, пробовал один способ, но он работает немного неправильно. СОздает файл, но там почему то есть все листы с предыдущей рабочей книги. Подскажите пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.04.2014, 14:02
Ответы с готовыми решениями:

Создать новый файл с именем S, содержащий ненулевую часть произведения A*B
Помогите, пожалуйста, исправить программу до рабочего состояния, возникли ошибки. (очень...

saveFileDialog как создать новый файл с указанным именем, если его не существует
Добрый вечер! У меня на форме в меню есть пункт "Сохранить как...", я хочу, чтобы при нажатии на...

Создать новый файл с именем NameD, в котором чередовались бы элементы исходных файлов
Доброе время суток друзья! Надеюсь на ваше мастерство,вот значит задачка.... Даны три файла...

Создать новый текстовый файл с именем Name3, являющийся объединением содержимого файлов Name1 и Name2
Даны два текстовых файла с именем Name1 и Name2, созданные заранее в редакторе Блокнот. Создать...

12
Заблокирован
03.04.2014, 14:16 2
Цитата Сообщение от zzz_ Посмотреть сообщение
Создать новый *.xlsx файл с одним листом и именем Ouput
Visual Basic
1
2
3
4
5
Sub zzz()
ActiveSheet.Copy
Cells.Clear
ActiveSheet.Name = "output"
End Sub
0
15151 / 6424 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
03.04.2014, 14:21 3
Скорее так
Visual Basic
1
2
3
4
5
ActiveSheet.Copy
With ActiveWorkbook
  .SaveAs "Ouput.xlsx", xlOpenXMLWorkbook
  .Close 0
End With
0
6944 / 2849 / 548
Регистрация: 19.10.2012
Сообщений: 8,723
03.04.2014, 14:21 4
Visual Basic
1
Set wb = Workbooks.Add(1)
0
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 215
03.04.2014, 14:22  [ТС] 5
Не-не, в том то и дело. ЧТо я сначала создаю файл, а потом только лист в нем, ничего не копирую.
0
6944 / 2849 / 548
Регистрация: 19.10.2012
Сообщений: 8,723
03.04.2014, 14:24 6
Создать файл без листов невозможно.
1
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 215
03.04.2014, 14:26  [ТС] 7
Ок, тогда поставим по-другому вопрос. Данных для Output - листа не существует. Туда они только попадут, когда будет файл Output.xlsx с листом Output. Вот, что я имею ввиду.
0
15151 / 6424 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
03.04.2014, 14:26 8
Тогда возвращаемся к началу.
Цитата Сообщение от zzz_ Посмотреть сообщение
пробовал один способ, но он работает немного неправильно
Какой способ, что неправильно?
0
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 215
03.04.2014, 14:37  [ТС] 9
Пока писали, пытался сам решить и решил. Вот, если кому надо.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub CreateOutputFile(path As String)
    Dim EApp As Excel.Application
 
 
    
    If Not (Dir(path & "\Output.xlsx") > "") Then
       Set EApp = CreateObject("Excel.Application")
        With EApp.Workbooks.Add
            .SaveAs path & "\Output.xlsx"
        End With
        EApp.Workbooks(1).Worksheets(1).Name = "Output"
  
 
    With EApp.Workbooks(1).Sheets("Output")
        .Cells.Clear
        .Cells(1, 1).value = "Name"
        .Columns("A").EntireColumn.AutoFit
    End With
    EApp.Workbooks(1).Close True
    EApp.Quit
    Set EApp = Nothing
End If
End Sub
0
6944 / 2849 / 548
Регистрация: 19.10.2012
Сообщений: 8,723
03.04.2014, 14:47 10
А что с другими листами? По коду не видно... Просили ведь один лист - я подсказал, а не использовали...
И код не в Экселе что-ли?
0
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 215
03.04.2014, 15:00  [ТС] 11
Вплане другими листами. Я проверил, создается только один лист. Нет, VBA не из под EXCEL.
0
15151 / 6424 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
03.04.2014, 15:01 12
zzz_, вызывает ошибку, если файл уже существует.
ИМХО проще создать файл заново, чем проверять, что он есть и чистить содержимое:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub CreateOutputFile(path As String)
  With Workbooks.Add(xlWBATWorksheet) 'книга с 1 листом, независимо от параметра
                                      ' "число листов в новой книге"
    With .Worksheets(1)
      .Name = "Output"
      .Cells(1, 1).Value = "Name"
      .Columns(1).EntireColumn.AutoFit
    End With
    Application.DisplayAlerts = False 'не выдавать предупреждение о перезаписи файла
    .SaveAs path & "\Output.xlsx", xlOpenXMLWorkbook
    Application.DisplayAlerts = True
    .Close 0
  End With
End Sub
0
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 215
03.04.2014, 15:13  [ТС] 13
Я там код исправлял, никаких ошибок не должно быть. Если файл не существует - даже объект не создадим.
0
03.04.2014, 15:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.04.2014, 15:13
Помогаю со студенческими работами здесь

Если строка является допустимым именем файла, то создать пустой файл с этим именем
Помогите решить Дана строка S. Если S является допустимым именем файла, то создать пустой файл с...

Если S является допустимым именем файла, то создать пустой файл с именем и вывести True
помогите решить. срочно надо сегодня сдавать. Дана строка S. Если S является допустимым именем...

Если S является допустимым именем файла, то создать пустой файл с именем и вывести True
Дана строка S. Если S является допустимым именем файла, то создать пустой файл с этим именем и...

Создать .xlsx файл
Искал как создать Excel таблицу через Qt. Нашел только такой вариант: QFile...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru