2009-10-19 24 views
9

के प्रारंभ/समाप्ति पर स्थिति कर्सर हम वर्ड इंटरऑप का उपयोग कर नेट से हमारे वर्ड 2007 दस्तावेज़ों में हेरफेर कर रहे हैं। अधिकतर फ़ील्ड के साथ सामान कर रहे हैं:वर्ड दस्तावेज़

 For Each f In d.Fields 
      f.Select() 
      //do stuff with fields here    
     Next 

यह चयनित दस्तावेज़ में अंतिम फ़ील्ड छोड़ देता है।

तो, स्वच्छता की खातिर हम दस्तावेज़ के अंत पर कर्सर स्थिति (या यहां तक ​​शुरू ठीक हो जाएगा) चाहते हैं।

उत्तर के लिए गुगलिंग बहुत अधिक नहीं फेंकता है ... निकटतम मुझे लगता है कि हमें खुद को श्रेणियों या बुकमार्क के साथ शामिल करने की आवश्यकता है। दस्तावेज़ ऑब्जेक्ट के लिए एक GoTo विधि है लेकिन WdGoToItem विकल्पों में से कोई भी यह उपयोगी नहीं है।

क्या कर्सर को दस्तावेज़ के अंत (या शुरू) में भेजने का कोई आसान तरीका नहीं है?

संपादित

मेरी समस्या का एक हिस्सा मेरे द्वारा चुने गए पिछले क्षेत्र छोड़ने पसंद नहीं आया था। अब एहसास हुआ है कि मैं

f.Unlink 

मर्जफील्ड को हटाने के लिए और केवल सादा पाठ के रूप में फ़ील्ड टेक्स्ट छोड़ सकता है।

object missing = Missing.Value; 
object what = Word.WdGoToItem.wdGoToLine; 
object which = Word.WdGoToDirection.wdGoToLast; 
doc.GoTo(ref what, ref which, ref missing, ref missing); 

मुझे लगता है कि यह VB.Net में और भी आसान हो जाएगा के रूप में यह वैकल्पिक पैरामीटर का समर्थन करता है: जो neater, या नहीं, हम भी कर्सर

उत्तर

12

@Alexander Kojevnikov: आपकी मदद के लिए धन्यवाद क्योंकि आपने मुझे सही रास्ते पर रखा है। हालांकि मुझे पता चला कि मुझे शब्द चयन ऑब्जेक्ट में .GoTo लागू करना था, दस्तावेज़ नहीं। में के रूप में:

Dim what As Object = Word.WdGoToItem.wdGoToLine 
    Dim which As Object = Word.WdGoToDirection.wdGoToLast 

    //below line had no effect 
    //d.GoTo(what, which, Nothing, Nothing) 

    w.Selection.GoTo(what, which, Nothing, Nothing) 
+0

मेरी VisualStudio 2013 कार्यान्वयन पर इस ** शुरू ** अंतिम पंक्ति की, नहीं काफी दस्तावेज़ के अंत में कर्सर देता है। – Fuhrmanator

+0

@ फ़ुहरमेटर वीएस 2013 या कार्यालय 2013? मैं कार्यालय 2010 (v14) से Office 2013 (v15) में कुछ अलग व्यवहार देख रहा हूं। उनमें से दोनों वीएस 2010 आईडीई का उपयोग करते हैं, हालांकि –

+0

वीएसटीओ 4.0 –

8

यह है कि यह कैसे सी # में दिखता है का स्थान है।

2

मुझे यकीन है कि मैं आप के रूप में एक ही वातावरण का उपयोग कर रहा है, लेकिन शुरू या दस्तावेज़ के अंत पर जाने के लिए नहीं कर रहा हूँ यहाँ क्या मेरे लिए काम करता है:

Private Sub moveCursorToStartOfDocument() 
    w.Selection.HomeKey(WdUnits.wdStory, Nothing) 
End Sub 

Private Sub moveCursorToEndOfDocument() 
    w.Selection.EndKey(WdUnits.wdStory, Nothing) 
End Sub 
1

मैं निम्नलिखित के रूप में appliction वस्तु Word.Application

साथ डेल्फी में यूनिट Word_TLB का उपयोग करें:

aWordDoc.Application.Selection.EndKey(wdStory,wdMove); 

आम तौर पर शब्द दस्तावेज़ के अंत है:

Selection.EndKey(WdUnits.wdStory, WdMovementType.wdMove) 

जब मैं

Selection.GoTo(Word.WdGoToItem.wdGoToLine, Word.WdGoToDirection.wdGoToLast, Nothing, Nothing); 
Selection.InsertFile('documnet.docx'); 

नई सामग्री अंतिम पंक्ति से पहले सम्मिलित किया गया था का उपयोग करें।

0

एक सी # वर्ड में वर्तमान दस्तावेज़ के अंत में कर्सर की स्थिति को बदलने के लिए ऐड-में VSTO:

this.Application.ActiveDocument.Range(
this.Application.ActiveDocument.Content.End-1, 
this.Application.ActiveDocument.Content.End-1).Select(); 

देखें How to: Programmatically Define and Select Ranges in Documents

1

एक रूपरेखा यह पता लगाने की सबसे आसान तरीका है के लिए वास्तविक कोड है उस विशिष्ट कार्रवाई के लिए वर्ड में मैक्रो रिकॉर्ड करने के लिए।

Imports wordNmSpace = Microsoft.Office.Interop.Word 
' Create an object for the application instance 
objWord = CreateObject("Word.Application") 

' Create a reference of the selection object within Word 
objSelection = objWord.Selection 

' Now comes the part where you move selection position to the end of document 
objSelection.endof(wordNmSpace.WdUnits.wdStory, wordNmSpace.WdMovementType.wdMove) 

आशा: तो फिर तुम वीबी, VB.NET, सी # के विभिन्न वाक्य रचना (रों) सूट करने के लिए तैयार किए गए कोड को संशोधित कर सकते आदि

कोड स्निपेट नीचे एक VB.NET आवेदन के लिए उपयोग को दर्शाता है इससे मदद मिलती है।

0

इस प्रयास करें:

int lNumberOfPages = 
    _WordDoc.ComputeStatistics(Word.WdStatistic.wdStatisticPages, false); 

WordApp.Selection.GoTo(Word.WdGoToItem.wdGoToPage,WordApp.WdGoToDirection.wdGoToLast, lNumberOfPages); 
संबंधित मुद्दे