2016-03-10 10 views
5

मैं वीबीए में date के साथ खेल रहा हूं और वर्तमान माह नहीं प्राप्त कर सकता हूं। वर्तमान वर्ष और दिन प्राप्त करने के लिए यह बहुत आसान लगता है, जैसा कि निम्नलिखित के साथ परीक्षण किया गया है:एक्सेल वीबीए वर्तमान महीने

MsgBox Year(Date) 
MsgBox Day(Date) 
MsgBox Year(Now) 
MsgBox Day(Now) 

कुछ सरल उदाहरणों के रूप में।

लेकिन वर्तमान माह को किसी संख्या (1, 2 आदि) या पूर्ण नाम के रूप में दिखाने के लिए कैसे संभव है? मैं एक सेल में TODAY() का उपयोग कर सकता हूं और इसे CurrentMonth = MonthName(Month(Sheet1.Range("A1"))) जैसे कुछ के साथ VBA में परिवर्तित कर सकता हूं। लेकिन मैं Excel के लिए सीधे VBA में ऐसा करने में सक्षम होना चाहता हूं।

+2

'महीना (अब) 'काम नहीं करता है? इसे 3 –

+0

वापस करना चाहिए, यह किसी कारण से नहीं है, इसलिए मेरा भ्रम। –

+0

'माह (तारीख), महीना (अब)' '3, 3' वापस आएगा - आप क्या देखते हैं? –

उत्तर

16

प्रयास करें,

debug.print Format(Date, "mmm")  'Mar 
debug.print Format(Date, "mmmm")  'March 
debug.print Int(Format(Date, "m")) '3 
debug.print Int(Format(Date, "mm")) '03 
2
Month(Now) 

वर्तमान माह से जुड़े सूचकांक संख्या को लौटाता है। नीचे

Jeeped के कोड सबसे कॉम्पैक्ट है, लेकिन आप कैसे अनुक्रमित काम की एक विचार देने के लिए, निम्न कोड सूचकांक के आधार पर महीने के नाम वापस आ जाएगी लौटे:

Dim months(11) As String 
months(0) = "Jan" 
months(1) = "Feb" 
months(2) = "Mar" 
months(3) = "Apr" 
months(4) = "May" 
months(5) = "Jun" 
months(6) = "Jul" 
months(7) = "Aug" 
months(8) = "Sep" 
months(9) = "Oct" 
months(10) = "Nov" 
months(11) = "Dec" 

Dim nowMonth As Integer 
nowMonth = Month(Now) 

For i = 0 To 11 
    If nowMonth = (i + 1) Then 
    MsgBox (months(i)) 
    End If 
Next 
+0

@ScottCraner मैंने एक त्वरित उत्तर पोस्ट किया और मैं अभी पूरा पोस्ट कोड पर काम कर रहा था। एक सही उत्तर देने के लिए कोई आवश्यकता नहीं है क्योंकि आपको पोस्ट करने पर पसंद नहीं आया। –

+0

@ स्कॉटक्रैनर;) –