2013-12-04 2 views
0

Вот некоторые кода я взял из someother существующих VBA для запусканужны Excel VBA скрипт для объединения листов и создать новую книгу

Set XL = CreateObject("Excel.Application") 
XL.Visible=True 
XL.Workbooks.Open "path\book1.xls" 
XL.Worksheets.Add(After:=Sheet1) 

Здесь мне нужно добавить два разных листов Book1.xls и сохранить как
книга12013DEC03.xls два листа взяты из книги2.xls и book3.xls (один лист
из каждого) book1.xls уже имеет один лист, и после этого мне нужны новые листы.

XL.ActiveWorkbook.SaveAs "path\book12013DEC03.xls" 
XL.ActiveWorkbook.Close 
XL.Quit 
+0

Сэму, сделали вы находите что-нибудь полезное среди того, что было опубликовано? –

ответ

1

Это, вероятно, вы начали

Sub joinws() 
    Dim wb1 As Workbook, wb2 As Workbook 
    Set wb1 = Workbooks("book1.xls") 
    'Dim ws As Worksheet 
    Set wb2 = Workbooks("book2.xls") 
    wb2.Sheets(1).Copy Before:=wb1.Sheets(1) 
    Set wb2 = Workbooks("book3.xls") 
    wb2.Sheets(1).Copy Before:=wb1.Sheets(2) 
    Application.DisplayAlerts = False 
    wb1.SaveAs Filename:="book12013DEC03.xls" 
    Application.DisplayAlerts = True 
End Sub 

(неосновное издания согласно OPs комментариям) (еще второстепенного изданию, чтобы избежать конфиденциальности предупреждения всплывающего окна, согласно OPs комментариям)

+0

На самом деле мне нужен формат, такой как мой код, потому что я выполняю этот скрипт в своей программе SAS. а также не видел book1.xls в вашем коде. И я не уверен, могу ли я сохранить ваш код с расширением .vbs и запустить в sas-программе. – Sam

+0

Если у вас уже открыт book1.xls, вы должны использовать 'Set wb1 = Рабочие книги ("book1.xls") 'вместо. Что касается другой части, вы спрашивали о Excel VBA, как в заголовке, так и в теле, и это то, что я использовал. Наверное, вы имели в виду VBScript (ваш код использует его, но я использовал его только в качестве примера). Хотя [они не совпадают] (http://msdn.microsoft.com/en-us/library/ms970436.aspx), скорее всего, вы можете использовать мой код, см. [This] (http://stackoverflow.com/ q/10232150/2707864) или версию VBScript, которая требует незначительных изменений. Надеюсь, поможет. –

+0

Спасибо Sancho за ваши данные, и мне определенно нужен VBScript, потому что я запускаю этот скрипт в моей программе SAS в конце. Моя программа SAS создает 3 книги, и в настоящее время они объединяют листы в новую книгу вручную, но я хочу автоматизировать этот процесс, добавив VBScript в конце моей SAS-программы. Итак, как вы думаете, вы можете изменить вышеупомянутую программу, чтобы сделать ее aa VBScript, я бы очень признателен за это. – Sam

Смежные вопросы