我已经在Excel VBA中编写代码,目前正在尝试将其转换为VS 2017上的vb.NET。
我想在Excel中复制一个表,并将其粘贴到Word文档中,并在它们之间保持实时链接,以便Excel表中的任何更改都将传输到粘贴在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的等价物是做什么的吗?
答案 0 :(得分:2)
将wdPasteOLEObject
替换为数字0。
将wdInLine
替换为数字0。
如果您想保留可读性,也可以自己定义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
,您可以直接去谷歌并粘贴您要查找的内容并添加单词Enum
,这通常是第一个结果。