2012-07-13 31 views
1

我有一个excel“Closed.Xls”,目前没有打开。VBA添加新的工作表在一个封闭的Excel中没有打开并获取表名添加?

请让我知道如何添加新的表单到这个封闭的excel文件。我知道如何在当前的Excel中添加新工作表。

Dim WS as Worksheet 
Set WS = Sheets.Add 

请让我知道如何

  1. 使用VBA在一个封闭的Excel中添加新的床单,和
  2. 拿到表的名称添加

注:我不想重命名该工作表。

感谢

+2

为什么你不只是打开它(通过VBA),创建新表并关闭它?据我所知,如果不打开它,你不能修改工作簿。 – ApplePie 2012-07-13 11:10:04

+0

@亚历山大:表不应该来信。 – logan 2012-07-13 11:16:45

+1

@logan然后关闭屏幕更新,打开文件,添加一张纸,关闭它,并再次打开屏幕更新 – 2012-07-13 11:17:35

回答

3

为了得到工作表名称使用worksheet变量,即

Sub Added() 
    Dim Wb As Workbook 
    Dim ws As Worksheet 

    With Application 
     .ScreenUpdating = False 
     .DisplayAlerts = False 
     .EnableEvents = False 
    End With 

    Set Wb = Workbooks.Open("c:\Temp\closed.xls") 
    Set ws = Wb.Sheets.Add 
    Debug.Print ws.Name 
    Wb.Save 
    Wb.Close 

    With Application 
     .ScreenUpdating = True 
     .DisplayAlerts = True 
     .EnableEvents = True 
    End With 
End Sub 
7

事情是这样的意愿会做你想要什么。没有打开工作簿是不可能的,但如果关闭屏幕更新,它会显示未打开。

Option Explicit 
Sub Add_Sheet_ClosedBook() 
    Dim bk As Workbook 
    Dim sh As Worksheet 
    Dim shName As String 

    With Application 
     .ScreenUpdating = False 
     .DisplayAlerts = False 
    Set bk = .Workbooks.Open _ 
    ("Path to Book.xls") 
    End With 

    With bk 
     Set sh = .Sheets.Add 
     shName = sh.Name 
     .Save 
     .Close 
    End With 

    With Application 
     .ScreenUpdating = True 
     .DisplayAlerts = True 
    End With 
End Sub 
+0

我如何获得新创建的工作表名称?例如:sheet5 ..我不想重命名表。 – logan 2012-07-13 11:30:21

+0

'.Sheets.Add.Name = xx' – 2012-07-13 11:32:54

+0

我说,我不想给我的名字。我只想得到新添加的表格的名称。 – logan 2012-07-13 11:34:41

2

它能够在不使用Microsoft.ACE.OLEDB.12.0供应商打开工作簿中添加一个表:

set cn = new adodb.connection 

with cn 
    .provider = "Microsoft.ACE.OLEDB.12.0" 
    .connectionstring = "Data Source=" & strSomeFilename & ";Extended Properties=""Excel12.0;""" 
    .open 
end with 

set cmd = new adodb.command 
cmd.activeconnection = cn 
cmd.commandtext = "CREATE TABLE MySheet (ID char(255))" 
cmd.execute 

这将添加一个标题“ID”到新工作表的单元格A1。如有必要,您可能会找到删除/更改的方法。

相关问题