Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Как создать в Excel-книге лист как в другой книге Добавлено: 29.12.08 13:08  

Автор вопроса:  tip
Смысл в том что я в Excel-книге из модуля ВБА создаю ещё книгу, нужно в этой созданой книге создать такой же лист как в той книге из модуля которой я создаю вторую! Код у меня для создания книги есть, как его доработать? Памагите кто может плиз!!!!
создаю так:

Public Function CreateXlBook(sWbName As String, sDirName) As Boolean

  ' MS Excel hidden instance
  Dim objXLApp As Object
  Dim objWbNewBook As Object

  CreateXlBook = False

  Set objXLApp = CreateObject("Excel.Application")
  If objXLApp Is Nothing Then Exit Function

  ' В новой рабочей книге создавать только один рабочий лист
  objXLApp.SheetsInNewWorkbook = 1

  Set objWbNewBook = objXLApp.Workbooks.Add
  If objWbNewBook Is Nothing Then Exit Function

  ' Сохраняем книгу
  objXLApp.DisplayAlerts = False
  If vbNullString = Dir(sDirName, vbDirectory) Then Exit Function

  objWbNewBook.SaveAs (sDirName + "\" + sWbName + ".xls")
  CreateXlBook = True
  
  ' Освобождение памяти
  Set objWbNewBook = Nothing
  objXLApp.Quit
  Set objXLApp = Nothing
  CreateXlBook = True

End Function

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #1 Добавлено: 29.12.08 14:32
А если просто скопировать лист целиком, а потом сохранить ?
  1. Sheets("Sheet1").Copy
  2. ActiveWorkbook.SaveAs ("Book23.xls")

Ответить

Номер ответа: 2
Автор ответа:
 AngryBadger



Вопросов: 33
Ответов: 245
 Профиль | | #2 Добавлено: 29.12.08 14:35
По-моему, это самый простой вариант.

Ответить

Номер ответа: 3
Автор ответа:
 AngryBadger



Вопросов: 33
Ответов: 245
 Профиль | | #3 Добавлено: 29.12.08 15:04
А можно сделать вот так, в принципе, тоже через копирование листов.

Public Function AddNewBook(sName As String, sDir As String)

    Dim sNameOfCurrentBook As String
        sNameOfCurrentBook = ThisWorkbook.Name
    
    Workbooks.Add
    
    Workbooks(sNameOfCurrentBook).Sheets(1).Copy _
    Before:=Workbooks(ActiveWorkbook.Name).Sheets(1)
    
    Application.DisplayAlerts = False
    
    With Workbooks(ActiveWorkbook.Name)
        .Sheets(2).Delete
        .Sheets(1).Name = "Лист1"
        .SaveAs (sDir & "/" & sName & ".xls";)
    End With

End Function

Sub Test_AddNewBook()

Call AddNewBook("Name", "C:";)

End Sub

Ответить

Номер ответа: 4
Автор ответа:
 tip



Вопросов: 11
Ответов: 10
 Профиль | | #4 Добавлено: 29.12.08 15:27
блин!!! точна!!! памоему с этого ВБА наченаю тупеть!!! Спасиба! всех с НГ.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам