将 Word table 复制到 Excel 并格式化为 table
Copy Word table to Excel and format as table
我在 Word VBA 中有一个宏,它从 Word 文件复制 table 并将其粘贴到 Excel。
它是这样粘贴的:
我现在的问题是,是否可以将 table 格式化为“Excel table”,就像在 [=34= 中插入 table 一样], 在word中使用vba?
最终结果如下:
我的意思是我知道如何在同一个 excel 文件中使用宏来做到这一点,但我怎样才能从单词 vba?
中格式化它
我的问题是我需要从单词 vba 开始,因为我没有选择 excel vba.
谢谢大家!
我的代码是:
Dim wrdTbl As Table, c As Long
'Excel Objects
Dim oXLApp As Object, oXLwb As Object, oXLws As Object
'Set your table
With ActiveDocument
If ActiveDocument.Tables.Count >= 1 Then
Set wrdTbl = .Tables(InputBox("Table # to copy? There are " & .Tables.Count & " tables to choose from."))
End If
End With
'Create a new Excel Application
Set oXLApp = CreateObject("Excel.Application")
With oXLApp
'Hide Excel
.Visible = False
'Open the relevant Excel file
Set oXLwb = oXLApp.Workbooks.Open("C:\Users\" & Environ("Username") & "\Desktop\ExcelEx.xlsx")
End With
wrdTbl.Range.Copy
With oXLwb.Sheets(1)
.Paste .Range("A1")
End With
'Close and save Excel file
oXLwb.Close True
'Cleanup (VERY IMPORTANT)
oXLApp.Quit
Set oXLwb = Nothing: Set oXLApp = Nothing
MsgBox "Done"
End Sub
类似的东西
With oXLwb.Sheets(1)
.Paste .Range("A1")
Dim LastRow As Long
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
Dim LastCol As Long
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
.ListObjects.Add(SourceType:=xlSrcRange, Source:=.Range("A1", .Cells(LastRow, LastCol)), XlListObjectHasHeaders:=xlYes).TableStyle = "TableStyleMedium2"
End With
应将其格式化为 table。根据您的需要和想要的风格进行调整。
这是关于如何 Find last row, column or last cell 的好资源。
我在 Word VBA 中有一个宏,它从 Word 文件复制 table 并将其粘贴到 Excel。
它是这样粘贴的:
我现在的问题是,是否可以将 table 格式化为“Excel table”,就像在 [=34= 中插入 table 一样], 在word中使用vba?
最终结果如下:
我的意思是我知道如何在同一个 excel 文件中使用宏来做到这一点,但我怎样才能从单词 vba?
中格式化它我的问题是我需要从单词 vba 开始,因为我没有选择 excel vba.
谢谢大家!
我的代码是:
Dim wrdTbl As Table, c As Long
'Excel Objects
Dim oXLApp As Object, oXLwb As Object, oXLws As Object
'Set your table
With ActiveDocument
If ActiveDocument.Tables.Count >= 1 Then
Set wrdTbl = .Tables(InputBox("Table # to copy? There are " & .Tables.Count & " tables to choose from."))
End If
End With
'Create a new Excel Application
Set oXLApp = CreateObject("Excel.Application")
With oXLApp
'Hide Excel
.Visible = False
'Open the relevant Excel file
Set oXLwb = oXLApp.Workbooks.Open("C:\Users\" & Environ("Username") & "\Desktop\ExcelEx.xlsx")
End With
wrdTbl.Range.Copy
With oXLwb.Sheets(1)
.Paste .Range("A1")
End With
'Close and save Excel file
oXLwb.Close True
'Cleanup (VERY IMPORTANT)
oXLApp.Quit
Set oXLwb = Nothing: Set oXLApp = Nothing
MsgBox "Done"
End Sub
类似的东西
With oXLwb.Sheets(1)
.Paste .Range("A1")
Dim LastRow As Long
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
Dim LastCol As Long
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
.ListObjects.Add(SourceType:=xlSrcRange, Source:=.Range("A1", .Cells(LastRow, LastCol)), XlListObjectHasHeaders:=xlYes).TableStyle = "TableStyleMedium2"
End With
应将其格式化为 table。根据您的需要和想要的风格进行调整。
这是关于如何 Find last row, column or last cell 的好资源。