2014-12-20 64 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

相關問題