Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Добавление лиска в книгу excel 2007 в языке VBA и её запись

Ответить
Настройки темы
VBA - Добавление лиска в книгу excel 2007 в языке VBA и её запись

Аватара для ivanhoe75

Старожил


Сообщения: 184
Благодарности: 0

Профиль | Отправить PM | Цитировать


Как добавить лист во вновь созданую книгу excel 2007 в языке VBA?
такой код спотыкается на xlWBATWorksheet ******
пишет нет такого терма. Помогите
Set objWorkbook = objOLE.Object
'Set objWorksheet = objWorkbook.Worksheets(1)
Set objWorksheet = objWorkbook.Worksheets("Лист1")
Set objDiapazon = objWorksheet.Range("A1:J15")

Exit For
End If
End If
' копирование таблицы в новый документ
'Dim wb As Workbook
Dim wb As Object
Dim ActiveSheet As Object
Application.ScreenUpdating = False
ActiveSheet = objWorkbook
ActiveSheet.Range ("A1:J15")
ActiveSheet.Select
ActiveSheet.Copy
'ActiveSheet.UsedRange.Copy
Set wb = Workbooks.Add(xlWBATWorksheet)
****************
With wb.ActiveSheet.Cells(1, 1)
.PasteSpecial Paste:=xlPasteColumnWidths
.PasteSpecial Paste:=xlPasteValues
.PasteSpecial Paste:=xlPasteFormats
End With
'здесь код сохранения книги взятый у Вас без проверки
ChDir "\\cad\...\userdata\...\Рабочий стол"
wb.SaveAs FileName:= _
"\\cad\...\userdata\...\Рабочий стол\sklad.csv", FileFormat:= _
xlCSV, CreateBackup:=False, Local:=True
wb.Close False
Application.CutCopyMode = False
Application.ScreenUpdating = True

Отправлено: 10:49, 18-11-2013

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


ivanhoe75, у Вас приведённый код далеко выходит за рамки заголовка. Простейшим кодом для:
Цитата ivanhoe75:
Добавление лиска в книгу excel 2007 в языке VBA и её запись »
будет:
Код: Выделить весь код
Option Explicit

Sub Sample()
    With ActiveWorkbook
        .Worksheets.Add
        .Save
    End With
End Sub

Отправлено: 13:16, 18-11-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для ivanhoe75

Старожил


Сообщения: 184
Благодарности: 0

Профиль | Отправить PM | Цитировать


так книга себя перезаписывает? Файлов новых не появляется

Отправлено: 15:58, 18-11-2013 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата ivanhoe75:
так книга себя перезаписывает? »
В приведённом мною коде — да. А как Вам надо?

Отправлено: 16:03, 18-11-2013 | #4


Аватара для ivanhoe75

Старожил


Сообщения: 184
Благодарности: 0

Профиль | Отправить PM | Цитировать


В вордовом документе находится ексельная книга и записывается отдельно на диск в этой же директории.(По идее если их несколько - то следующая так же в отдельный файл).

Отправлено: 11:49, 19-11-2013 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Т.е., то же, что здесь: Как получить доступ программными средствами к внедрённой в doc excel таблице?? К сожалению, у меня пока никак не получилось добиться корректной работы по сохранению встроенного объекта Microsoft Excel во внешний файл: периодически возникает ошибка при сохранении (или копировании — если использовать копирование листов во внешнюю рабочую книгу). При этом при отладке, если приостановить исполнение макроса, а затем ничего не меняя продолжить его исполнение — чаще всего объект корректно сохраняется во внешний файл. Причины такого поведения мне пока непонятны.

Отправлено: 12:48, 19-11-2013 | #6


Аватара для ivanhoe75

Старожил


Сообщения: 184
Благодарности: 0

Профиль | Отправить PM | Цитировать


сбрось мне код плз. Помучаем(ся) вместе
Ты перед сохранением копируешь в новую книгу?
Попробуй сохранить в других форматах лишь бы таблица читалась

Отправлено: 13:00, 19-11-2013 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
Option Explicit

Sub Sample()
    Dim objInlineShape As InlineShape
    Dim objWorkbook As Excel.Workbook
    Dim strFileName As Variant
    
    
    For Each objInlineShape In ThisDocument.InlineShapes
        If objInlineShape.Type = wdInlineShapeEmbeddedOLEObject Then
            If objInlineShape.OLEFormat.ProgID = "Excel.Sheet.8" Then
                objInlineShape.OLEFormat.Activate
                With objInlineShape.OLEFormat.Object
                    'strFileName = objWorkbook.Application.GetSaveAsFilename
                    strFileName = "c:\Sample.xls"
                    
                    'If strFileName <> False Then
                        .SaveAs FileName:=strFileName, FileFormat:=xlWorkbookNormal
                    'End If
                End With
            End If
        End If
    Next
End Sub
Установите ссылку на библиотеку «Microsoft Excel 11.0 Object Library».
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:08, 19-11-2013 | #8


Аватара для ivanhoe75

Старожил


Сообщения: 184
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вот такая штука работает с выводом окна на сохранение документа, работает только с 1-ой таблицей, тоже вылетает через раз.

читать дальше »


Sub Test2()

Dim objShape As Word.InlineShape
Dim objOLE As Word.OLEFormat

Dim objWorkbook As Object 'Рабочая книга Excel
Dim objWorksheet As Object 'Рабочий лист
Dim objDiapazon As Object 'Диапазон ячеек
Dim strFileName As Variant
For Each objShape In ActiveDocument.InlineShapes
Set objOLE = objShape.OLEFormat

If Not objOLE Is Nothing Then
If objOLE.ProgID Like "Excel.Sheet*" Then
objOLE.Activate

Set objWorkbook = objOLE.Object
'Set objWorksheet = objWorkbook.Worksheets(1)
Set objWorksheet = objWorkbook.Worksheets("Лист1")
Set objDiapazon = objWorksheet.Range("A1:J15")

'With objInlineShape.OLEFormat.Object
With objWorkbook
strFileName = objWorkbook.Application.GetSaveAsFilename
'strFileName = "c:\Sample.xls"

'If strFileName <> False Then
.SaveAs FileName:=strFileName, FileFormat:=xlWorkbookNormal
'End If
End With
Exit For
End If
End If
Next

End Sub

Отправлено: 21:40, 19-11-2013 | #9


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


ivanhoe75, я всё это пробовал. И Workbook, и Worksheet, и копирование в новую книгу… Потому и пишу: не удаётся добиться корректной работы.

Отправлено: 00:34, 20-11-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Добавление лиска в книгу excel 2007 в языке VBA и её запись

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBA - VBA Добавление слова и форматирование ячейки. sakova Программирование и базы данных 2 19-06-2012 01:13
Разное - Задача Excel VBA JON4 Microsoft Office (Word, Excel, Outlook и т.д.) 8 12-12-2010 18:40
2007 - [решено] Нужно ли удалять office 2007 перед установкой office 2007 на другом языке Civo Microsoft Office (Word, Excel, Outlook и т.д.) 5 22-02-2010 11:27




 
Переход