2017-03-21 6 views
5

में डालें, मैं एक एक्सेल मैक्रो बनाने की कोशिश कर रहा हूं जो एक दिन के लिए पूछता है और फिर इसे अगले खुले सेल में डाल देता है। यहां वह कोड है जिसका मैं उपयोग करने की कोशिश कर रहा हूं।एक एक्सेल मैक्रो बनाएं जो एक दिन के लिए पूछता है और फिर इसे अगले खुले सेल

Sub Button7_Click() 
    Dim AddName As String 
    AddName = InputBox("Date: Month/Year", "Add Date", "01/00") 
    Sheets("Sheet2").Select 
    Selection.End(xlUp).Select 
    ActiveCell.Offset(1, 0).Range("A1").Select 
    Range("A1").Value = AddName 
End Sub 

यह दिन मैं A1 सेल में कोई बात नहीं क्या उस में है में टाइप रहा है, और फिर पंक्ति ए में अगले खुला सेल को चुनकर

मैं जवाब की तरह महसूस इतना आसान है, लेकिन मैं है इसे समझ नहीं सकते!

उत्तर

4

How to avoid using Select in Excel VBA macros देखें।

Sub Button7_Click() 
    Dim AddName As String 
    AddName = InputBox("Date: Month/Year", "Add Date", "01/00") 
    With Worksheets("Sheet2") 
     .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0) = AddName 
    End With 
End Sub 

आपका मूल समस्या यह है कि एक सेल स्तंभ A में पिछली बार उपयोग सेल से एक पंक्ति नीचे ऑफसेट चयन करने के बाद, आपको लगता है कि चयन का उपयोग नहीं किया मूल्य लिखने के लिए था, बस इसे ए 1 में लिखा है। आपके कोड की अंतिम पंक्ति Selection = AddName में बदल दी जा सकती है, लेकिन जब भी संभव हो चयन और सक्रिय करने का उपयोग करना बेहतर होता है।

आप Application.InputBox पर देख सकते हैं। Excel Application.InputBox Method मानक VBA InputBox function से थोड़ा अलग है जिसमें यह एक प्रकार का रिटर्न निर्दिष्ट करने की अनुमति देता है।

4

यहाँ एक और है:

Sub Button7_Click() 
    Dim AddName As String 
    AddName = InputBox("Date: Month/Year", "Add Date", "01/00") 
    Sheets("Sheet2").Select 
    Range("A" & ActiveSheet.UsedRange.SpecialCells(xlLastCell).Row + 1) = AddName 
End Sub 
+1

ActiveSheet.UsedRange.SpecialCells का उपयोग कर के लिए एक और बोनस (xlLastCell) .Row यह एक्सेल बलों कोशिकाओं है कि हटा दिया गया है –

+0

धन्यवाद के लिए किसी भी पुराने स्मृति स्थल को साफ करने के लिए है! इसने काम कर दिया! –

संबंधित मुद्दे