2015-07-15 4 views
1
Function NextMonthName(dateval) 
    Dim tmp : tmp = DateAdd("m", 1, dateval) 
    NextMonthName = MonthName(Month(tmp)) 
    return NextMonthName 
    Wscript.Echo NextMonthName 
    End Function 

Function PrevMonthName(dateval) 
    Dim tmp : tmp = DateAdd("m", -1, dateval) 
    NextMonthName = MonthName(Month(tmp)) 
    return NextMonthName 
    End Function 

Я запускаю вышеупомянутый скрипт VB, и он отлично работает без вывода. Я хочу результат в текстовом файле. Я также не могу получить вывод в консоли.VB-скрипт, не возвращающий значения

+0

Как вы их называете? – bowlturner

+0

Call NextMonthName (07/15/2015) –

ответ

0

Поскольку не существует в VBScript нет return, это

Option Explicit 

Function NextMonthName(dateval) 
    Dim tmp : tmp = DateAdd("m", 1, dateval) 
    NextMonthName = MonthName(Month(tmp)) 
    return NextMonthName 
End Function 

WScript.Echo NextMonthName(Now) 

проваливается с

...\31436343.vbs(6, 5) Microsoft VBScript runtime error: Variable is undefined: 'return' 

(выглядит, как вы задали вопрос, основанный на коде, содержащий глобальный "On Error Resume Next")

Удаление обижая линии -

Option Explicit 

Function NextMonthName(dateval) 
    Dim tmp : tmp = DateAdd("m", 1, dateval) 
    NextMonthName = MonthName(Month(tmp)) 
End Function 

WScript.Echo NextMonthName(Now) 

решает эту проблему:

cscript 31436343.vbs 
August 
+0

Спасибо, что решили проблему и ям получаю вывод. Но я хочу, чтобы выходной формат был чем-то вроде августа 2015 года, а не августа. и напишите этот вывод в текстовый файл –

+1

@ajayk - Очевидно, что эти новые проблемы/спецификации ** не ** покрыты вашим вопросом «VB-скрипт не возвращает никакого значения». Поэтому создайте ** два ** новых вопроса, показывая хотя бы некоторые усилия для решения этих проблем. –

0

Для записи на выводе в текстовый файл;

Option Explicit 
Dim Title,dateval,Message 
Title = "The previous Month and The Next Month" 
dateval = Now() 
Message = "The previous Month : "& PrevMonthName(dateval) & " "& Year(dateval) & vbCrLf &_ 
"The Next Month :"& NextMonthName(dateval) & " "& Year(dateval) 
MsgBox Message,VbInformation,Title 
WriteLog Message 
'******************************************* 
Function PrevMonthName(dateval) 
    Dim tmp : tmp = DateAdd("m", -1, dateval) 
    PrevMonthName = MonthName(Month(tmp)) 
End Function 
'******************************************* 
Function NextMonthName(dateval) 
    Dim tmp : tmp = DateAdd("m", 1, dateval) 
    NextMonthName = MonthName(Month(tmp)) 
End Function 
'******************************************* 
Sub WriteLog(strText) 
    Dim fs,ts,LogFile 
    Const ForWriting = 2 
    LogFile = Left(Wscript.ScriptFullName, InstrRev(Wscript.ScriptFullName, ".")) & "log" 
    Set fs = CreateObject("Scripting.FileSystemObject") 
    Set ts = fs.OpenTextFile(LogFile,ForWriting,True) 
    ts.WriteLine strText 
    ts.Close 
End Sub 
'******************************************** 
+0

Большое спасибо Hackoo. просто то, что я ожидал. Огромное спасибо. Ям в стадии обучения и поднимусь отсюда. –

+0

@ajayk в этом случае не забывайте отмечать этот ответ как «принятый» и приветствуем в stackoverflow, и посмотрите на это, чтобы выяснить, как работает SO ==> http://stackoverflow.com/tour – Hackoo

+0

Конечная функция ' ******************************************* Функция CurrMonthName (dateval) Dim tmp: tmp = DateAdd ("m", 0, dateval) CurrMonthName = MonthName (месяц (tmp)) CurrMonthName = replace (CurrMonthName, "% M", CurrMonthName) iam пытается отформатировать имя месяца, отображает первые 3 буквы. При поиске найденного% M можно использовать. Я попытался использовать его в приведенном выше коде, и результаты не будут такими, как ожидалось. Он по-прежнему показывает полный месяц –

Смежные вопросы