मेरे पास एक वीबीए मैक्रो है जो एक्सेल शीट से जानकारी लेता है और एक शब्द दस्तावेज़ को पॉप्युलेट करता है। मैक्रो की शुरुआत में मैंने दस्तावेज़/एप्लिकेशन शब्द के लिए चर को परिभाषित करने के लिए कोड का उपयोग किया था।

Dim WRD As Object, DOC As Object
On Error Resume Next
Set WRD = CreateObject("Word.Application")
If Err.Number <> 0 Then
    Set WRD = CreateObject("Word.Application")
End If
On Error GoTo 0

' Setting the correct word document template

Set DOC = WRD.Documents.Open(ThisWorkbook.Path & "\template.docx", ReadOnly:=True)

WRD.Visible = True

यह सब बहुत अच्छी तरह से काम करता है हालांकि मैं उस कोड को पूरी तरह से समझने की कोशिश कर रहा हूं जिसका मैं उपयोग कर रहा हूं और मुझे नहीं पता कि मेरे पास क्यों है

Set WRD = CreateObject("Word.Application")
If Err.Number <> 0 Then
    Set WRD = CreateObject("Word.Application")
End If

मैंने देखा है कि Err.Number क्या है, लेकिन इसके साथ WRD = CreateObject("Word.Application") का दो बार उपयोग क्यों किया जाता है।

0
JoshL 22 अक्टूबर 2020, 19:03

1 उत्तर

सबसे बढ़िया उत्तर

आपका कोड गलत है। यह होना चाहिए:

Dim WRD As Object, DOC As Object
'ignore errors to prevent generic error message being displayed
On Error Resume Next
'attempt to get the currently open instance of Word
Set WRD = GetObject(,"Word.Application")
'If Word isn't open an error is generated
If Err.Number <> 0 Then
    'as Word wasn't already open create a new instance
    Err.Clear
    Set WRD = CreateObject("Word.Application")
End If
'reset error handling as errors should not be ignored
On Error GoTo 0
2
Timothy Rylatt 22 अक्टूबर 2020, 17:35