Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 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
       
    
       
  
А если просто скопировать лист целиком, а потом сохранить ? 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа:
 AngryBadger
![]()
![]()
![]()
Вопросов: 33
Ответов: 245
      
 Профиль |  | #2
       
Добавлено:  29.12.08 14:35
       
    
       
  
По-моему, это самый простой вариант.
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа:
 AngryBadger
![]()
![]()
![]()
Вопросов: 33
Ответов: 245
      
 Профиль |  | #3
       
Добавлено:  29.12.08 15:04
       
    
       
  
А можно сделать вот так, в принципе, тоже через копирование листов.
 
    
    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
       
    
       
  
блин!!! точна!!! памоему с этого ВБА наченаю тупеть!!! Спасиба! всех с НГ.