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:=wdPasteOLEObjectPlacement:=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

PasteDataType Enumeration

Placement Enumeration

如果你想保持可读性,你也可以自己定义 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 和它通常是第一个结果。