非常に新しい:お助けください!は、1つのWord文書からさまざまなテキストを選択し、別のWord文書にコピーします。
私は以下のコードを答えの1つから見つけました(提供者のおかげ)。コードはWord VBAで動作し、テストしました。
Sub RevisedFindIt()
' Purpose: display the text between (but not including)
' the words "Title" and "Address" if they both appear.
Dim rng1 As Range
Dim rng2 As Range
Dim strTheText As String
Set rng1 = ActiveDocument.Range
If rng1.Find.Execute(FindText:="Title") Then
Set rng2 = ActiveDocument.Range(rng1.End, ActiveDocument.Range.End)
If rng2.Find.Execute(FindText:="Address") Then
strTheText = ActiveDocument.Range(rng1.End, rng2.Start).Text
MsgBox strTheText
End If
End If
End Sub
私はEXCEL内のデータを使用する必要があるとして、メインエクセルVBAサブからサブとしてそれを呼び出し、そこにいくつかの引数を渡すことによって、EXCEL VBAから同じコードを実行したいです。 .Find.Execute(FindText:=
との関係で
Argument not optional
:以下の私の試みは、コンパイラのエラーで失敗しました。
Sub FindIt(ftext, text1, text2, texto)
' Purpose: display the text between (but not including)
' the words "Title" and "Address" if they both appear.
'Dim wdDoc As Object, wdApp As Object
Dim wdApp As Object
Dim wdDoc As Object
'Set wdApp = CreateObject("Word.application")
Set wdApp = New Word.Application
Set wdDoc = wdApp.Documents.Open(ftext)
wdApp.Visible = True
Dim rng1 As Range
Dim rng2 As Range
Dim strTheText As String
With wdDoc
Set rng1 = ActiveDocument.Range
If rng1.Find.Execute(FindText:=text1) Then
Set rng2 = ActiveDocument.Range(rng1.End, ActiveDocument.Range.End)
If rng2.Find.Execute(FindText:=text2) Then
strTheText = ActiveDocument.Range(rng1.End, rng2.Start).Text
MsgBox strTheText
texto = strTheText
End If
End If
End With
wdDoc.Close savechanges:=False
wdApp.Quit
Set wdDoc = Nothing
Set wdApp = Nothing
End Sub
https://msdn.microsoft.com/en-us/vba/excel-vba/articles/range-find- method-excel – braX
引数はオプションではありません。いくつかの引数を省略しました。 – peakpeak