2017-11-20 10 views
1

Xeroのテンプレート請求書を作成しようとしています。 XeroはMS Wordテンプレート内の特定のフィールドを探し、指定されたフォーマットのテキストフィールドに割り当てられた変数を入力します。この出力ms単語マクロを使用してテキストフィールドの一部を選択する方法

{ MERGEFIELD InvoiceNumber \* MERGEFORMAT} 

INV1234成功したテンプレートにフォーマットを持つ

«InvoiceNumber» 

か名前:一言であなたにだけ、フィールド名を表示するフィールドコードを切り替えることができます。今私がする必要があるのは、最後の4文字だけです。

This postは、VBAで行う必要があると思われるようです。私は言葉にのVisual Basicと一緒マクロを入れて、これは私がヒットしているトラブルです:

Sub InvoiceNumber() 
    Dim MyInv As FormFields 
     Set MyInv = ActiveDocument.FormFields 
     If MyInv("Text1").Result = "InvoiceNumber" Then 
      MyInv("Text1").CheckBox.Value = Right(MyInv("Text1"), 4) 
     End If 
End Sub 

これは

エラー5941を返します。選択の要求されたメンバありません存在する

私は間違っていますVB Macマクロでかなり初心者ですが、どうやって代わりにInvoiceNumber Fiel d?

答えて

2

以下の溶液で試してみてください:

Sub InvoiceNumber() 
     Dim MyInv As Field 
     Set MyInv = GetFieldByName("InvoiceNumber") 

     If Not MyInv Is Nothing Then 
      'do something with field result... 
      'here... debug to Immediate window 
      Debug.Print Right(MyInv.Result, 4) 
     End If 
End Sub 

Function GetFieldByName(fName As String) As Field 

    Dim F As Field 
    For Each F In ActiveDocument.Fields 
     'if not working try with (1) istead of (2) in line below 
     If Split(Replace(F.Code, " ", " "), " ")(2) = fName Then 
      Set GetFieldByName = F 
      Exit Function 
     End If 
    Next F 
    Set GetFieldByName = Nothing 
End Function 
+1

もマクロ作品、私のエラーを修正し、通常はそれが私が求めています正確に何の出力は、残念ながらそれはと通信しないXeroなどでテンプレートリーダーが判明うそれで、私はこれを達成するために別の方法(おそらくXero APIで)を見つける必要があります –

関連する問題