2014-12-20 58 views
0

我需要将Excel文件中选项卡的名称保存到Access表中以备将来使用。我可以使用Debug.Print将它们打印到立即窗口,或使用Print#发送到.txt文件,但无法弄清楚如何让它们到数据库中的表格。预先感谢您的帮助。使用VBA获取Excel选项卡名称并将其复制到Access表

+0

我不完全知道你正在尝试做的。从它读取的方式来看,它看起来像只想将每个WORKSHEET的NAME以TABLE的形式导出到ACCESS中?如在,也许使用“选项卡”(即工作表)的名称创建一个新表。然后将其导入ACCESS? – peege

回答

0

你的问题部分回答在(Using Excel VBA to export data to MS Access table)。为了将数据传输(相关,以你的情况,Excel的标签名存储,用于例如,在一列“A”)从Excel到Access表,使用下面的代码片段:

Sub AccImport() 
    Dim acc As New Access.Application 
    acc.OpenCurrentDatabase "C:\Users\Public\Database1.accdb" 
    acc.DoCmd.TransferSpreadsheet _ 
      TransferType:=acImport, _ 
      SpreadSheetType:=acSpreadsheetTypeExcel12Xml, _ 
      TableName:="yourExcelTable", _ 
      Filename:=Application.ActiveWorkbook.FullName, _ 
      HasFieldNames:=True, _ 
      ' your data column, for example A1 
      Range:="Sheets1$A1:A10" 
    acc.CloseCurrentDatabase 
    acc.Quit 
    Set acc = Nothing 
End Sub 

希望这会有所帮助。

0

我不确定这是不是你说的。我正在写这个,假设你正在尝试创建一个具有工作簿中“选项卡”的名称的表。然后你可以把这个新的表格导入到ACCESS中。如果我误解了,只是评论。

Private Sub CreateSheetFromNames() 

Dim ws As Worksheet 
Dim lRow As Long 
Dim sheet As String 

'---SET UP WORKSHEET TO STORE ALL THE TAB NAMES---' 
    sheet = "Master" 
    Set ws = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.count)) 
    ws.Name = sheet 

    'Format the Column Header and Font Properties 
    ws.Cells(1, 1) = "Tab Name" 
    With ws.Cells(1, 1).Font 
     .Bold = True 
    End With 

    'Define Row for new sheet and loop through worksheets getting names 
    lRow = 2 

    For Each ws In Worksheets 
     If ws.Name <> sheet Then 
      Sheets(sheet).Cells(lRow, 1) = ws.Name 
      lRow = lRow + 1 
     End If 
    Next ws 

    'Widen the target column to account for widest entry 
    With Sheets(sheet) 
     Columns(1).AutoFit 
     Columns(1).HorizontalAlignment = xlCenter 
    End With 

End Sub 

RESULT

相关问题