VBA के माध्यम से एक्सेल कोशिकाओं में गतिशील टिप्पणियां जोड़ें


0

मैं एक VBA मैक्रो के माध्यम से कार्य की वर्तमान नियत तिथि दिखाने के लिए टिप्पणियों का उपयोग करने का प्रयास कर रहा हूं। मेरा वर्तमान समाधान ऐसा दिखता है:

Sub AddDueDates()
Dim strPrefix As String
  strPrefix = ""
  With Range("Target")
If .Comment Is Nothing Then
   .AddComment
End If
.Comment.Visible = True
.Comment.Shape.TextFrame.AutoSize = True
  End With

 With Range("Target").Comment
.Text strPrefix & Range("Source").Text 
End With
End Sub

मैं बहुत जागरूक हूं, कि यह संभावना मैला कोड है, लेकिन मैं अभी फिर से शुरू कर रहा हूं।

अब तक का समाधान एकल कोशिका के लिए ठीक काम करता है। मैंने सेल संदर्भों जैसे "बी 12" का उपयोग करने के बजाय "लक्ष्य" और "स्रोत" को पहले ही नाम दे दिया। अब मैं इसे कई कोशिकाओं तक विस्तारित करना चाहता हूं, मैं पहले से तय सीमा के आधार पर (उदाहरण A1: A6)।

चयन जहां टिप्पणियों को जोड़ा जाएगा, एक अलग वर्कशीट में समान आकार की सीमा के अनुरूप होगा।

मुझे लगता है कि एक लूप मददगार होगा, लेकिन मुझे नहीं पता कि कहां से शुरू किया जाए।

नीचे दी गई तस्वीर बता सकती है कि मैं क्या करना चाहता हूं। स्रोत गतिशील तिथियों से भरा है जो मैं अपनी टिप्पणियों में जोड़ना चाहता हूं

https://i.stack.imgur.com/EsfEa.jpg

अग्रिम में धन्यवाद


आपको बस यह देखना होगा कि कैसे एक रेंज बनाई जाए, और सेल द्वारा इसके माध्यम से लूप बनाया जाए।
ब्रूसवैन

धन्यवाद बैटमैन :) क्या आप मुझे एक संकेत देना चाहेंगे कि कहां से शुरू करें?
जेम्स

जवाबों:


0

इससे आप कार्य शुरू कर पाएंगे। यह आपके नमूना फोटो के साथ काम करता है - लेकिन टिप्पणी स्रोत एक अलग वर्कशीट है, तो इसे ट्विक करने की आवश्यकता होगी।

Sub AddDates()
Dim targetRng As Range, commentSrcRng As Range
Dim strPrefix As String ' why this variable? You never seem to use it

Set targetRng = Application.InputBox("Please select the target range.  This is the range that will have comments added to each cell", Type:=8)
Set commentSrcRng = targetRng.Offset(0, 3) ' from the screenshot. Will have to tweak if this is a different worksheet.

Dim cel As Range
Dim i As Long
i = 1
For Each cel In targetRng
    If cel.Comment Is Nothing Then
        cel.AddComment
    End If
    cel.Comment.Visible = True
    cel.Comment.Shape.TextFrame.AutoSize = True
    cel.Comment.Text strPrefix & commentSrcRng.Cells(i)
    i = i + 1
Next cel

End Sub

यहां छवि विवरण दर्ज करें


बहुत मजबूर, बैटमैन! :) मुझे पता था, तुम न केवल अपने तरीके के बारे में पता है! मैं इसे जाने दूँगा!
जेम्स

बस इस क्षण की कोशिश की और यह आश्चर्यजनक रूप से काम करता है, लेकिन जैसा कि आप पहले से ही समझ चुके हैं, मुझे एक और वर्कशीट से टिप्पणी स्रोत की आवश्यकता है। मैं देख रहा हूँ कि जब से मैंने इसे समेटा है तब से इसे टारगेट के साथ करने के लिए मिला, लेकिन अगर आप मुझे फिर से संकेत दे सकते - पवित्र VBA-बैटमैन! :-)
जेम्स

@James जहां दूसरी वर्कशीट पर टिप्पणियां हैं, आप उन्हें कैसे खोजेंगे?
ब्रूसवेने

मैं commentSrcRng = Application.InputBox के साथ अपने कोड में संशोधन ( "कृपया स्रोत श्रेणी का चयन इस रेंज है कि टिप्पणियों के स्रोत होगा।", प्रकार: = 8)
जेम्स

मुझे लगता है कि मैं वर्तमान दृष्टिकोण के साथ अपेक्षाकृत व्यंग्य कर रहा हूं, बहुत बहुत धन्यवाद! - होवर, मैं एक और मैक्रों को लागू करना चाहूंगा, जो हाल के बदलावों को प्रतिबिंबित करने के लिए संलग्न टिप्पणियों को ताज़ा करता है
जेम्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.