PasteSpecial():wdPasteOLEObject 和 wdInLine 枚举
PasteSpecial(): wdPasteOLEObject and wdInLine Enumerations
我已经在 Excel VBA 中编写了代码,目前正在尝试在 VS 2017 上将其转换为 vb.NET。
我想在 Excel 中复制一个 table,然后将其粘贴到 Word 文档中,并在它们之间保留一个实时 link,以便 [=24] 中的任何更改=]将table转成table粘贴在Word文档中。我在 Excel VBA 中管理了这个,但是 vb.NET 不识别 DataType:=wdPasteOLEObject
和 Placement:=wdInLine
,说它们没有声明。
以下是我的代码示例:
excelApp = New Excel.Application
excelWB = excelApp.Workbooks.Open(SurveyFormLoc)
excelApp.Visible = True
With excelApp
.Sheets("Site Details").Select
.Range("B2:I11").Copy()
End With
wdApp = CreateObject("Word.Application")
wdApp.Visible = True
wdDoc = wdApp.Documents.Open(DesignReportLoc)
With wdDoc
.Application.Selection.Find.Text = "INSERT FROM SURVEY FORM"
.Application.Selection.Find.Execute()
.Application.Selection.ParagraphFormat.Alignment = 0
End With
wdApp.Selection.PasteSpecial(Link:=True, DataType:=wdPasteOLEObject, Placement:=wdInLine, DisplayAsIcon:=False)
有人知道 vb.NET 的等效项是什么吗?
将wdPasteOLEObject
替换为数字0。
也用数字 0 替换 wdInLine
。
如果你想保持可读性,你也可以自己定义 Enumeration
:
Enum WdOLEPlacement
wdFloatOverText = 1
wdInLine = 0
End Enum
Enum WdPasteDataType
wdPasteBitmap = 4
wdPasteDeviceIndependentBitmap = 5
wdPasteEnhancedMetafile = 9
wdPasteHTML = 10
wdPasteHyperlink = 7
wdPasteMetafilePicture = 3
wdPasteOLEObject = 0
wdPasteRTF = 1
wdPasteShape = 8
wdPasteText = 2
End Enum
在你的代码中,引用如下:
DataType:=WdPasteDataType.wdPasteOLEObject
Placement:=WdOLEPlacement.wdInLine
如果您再次 运行 进入未定义的 Enumerations
,您只需转到 google 并粘贴您要查找的内容并包含单词 Enum
和它通常是第一个结果。
我已经在 Excel VBA 中编写了代码,目前正在尝试在 VS 2017 上将其转换为 vb.NET。
我想在 Excel 中复制一个 table,然后将其粘贴到 Word 文档中,并在它们之间保留一个实时 link,以便 [=24] 中的任何更改=]将table转成table粘贴在Word文档中。我在 Excel VBA 中管理了这个,但是 vb.NET 不识别 DataType:=wdPasteOLEObject
和 Placement:=wdInLine
,说它们没有声明。
以下是我的代码示例:
excelApp = New Excel.Application
excelWB = excelApp.Workbooks.Open(SurveyFormLoc)
excelApp.Visible = True
With excelApp
.Sheets("Site Details").Select
.Range("B2:I11").Copy()
End With
wdApp = CreateObject("Word.Application")
wdApp.Visible = True
wdDoc = wdApp.Documents.Open(DesignReportLoc)
With wdDoc
.Application.Selection.Find.Text = "INSERT FROM SURVEY FORM"
.Application.Selection.Find.Execute()
.Application.Selection.ParagraphFormat.Alignment = 0
End With
wdApp.Selection.PasteSpecial(Link:=True, DataType:=wdPasteOLEObject, Placement:=wdInLine, DisplayAsIcon:=False)
有人知道 vb.NET 的等效项是什么吗?
将wdPasteOLEObject
替换为数字0。
也用数字 0 替换 wdInLine
。
如果你想保持可读性,你也可以自己定义 Enumeration
:
Enum WdOLEPlacement
wdFloatOverText = 1
wdInLine = 0
End Enum
Enum WdPasteDataType
wdPasteBitmap = 4
wdPasteDeviceIndependentBitmap = 5
wdPasteEnhancedMetafile = 9
wdPasteHTML = 10
wdPasteHyperlink = 7
wdPasteMetafilePicture = 3
wdPasteOLEObject = 0
wdPasteRTF = 1
wdPasteShape = 8
wdPasteText = 2
End Enum
在你的代码中,引用如下:
DataType:=WdPasteDataType.wdPasteOLEObject
Placement:=WdOLEPlacement.wdInLine
如果您再次 运行 进入未定义的 Enumerations
,您只需转到 google 并粘贴您要查找的内容并包含单词 Enum
和它通常是第一个结果。