Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 格式化公共函数的输出_Vba_Excel - Fatal编程技术网

Vba 格式化公共函数的输出

Vba 格式化公共函数的输出,vba,excel,Vba,Excel,如何获取日期格式的IsMonday()输出?函数当前的值为true或false。我试图将pubic变量dt作为其他两个子过程的参数传递 Option Explicit Public dt As Date Sub test2() MsgBox Date MsgBox dt MsgBox IsMonday(dt) End Sub Public Function IsMonday(inputdate As Date) As Boolean Select Case Weekday(i

如何获取日期格式的
IsMonday()
输出?函数当前的值为true或false。我试图将pubic变量
dt
作为其他两个子过程的参数传递

Option Explicit
Public dt As Date

Sub test2()
MsgBox Date

MsgBox dt

MsgBox IsMonday(dt)

End Sub

Public Function IsMonday(inputdate As Date) As Boolean

    Select Case Weekday(inputdate)
        Case vbMonday
            dt = Date - 3              
            'dt = Format(dt, "mmddyyyy")
        Case Else
            dt = Date - 1
            'dt = Format(Date - 1, "mmddyyyy")          
            'dt = Format(dt, "mmddyyyy")
    End Select

End Function

如果您试图从函数中传递一个值作为日期,则必须将结果声明为日期

Public Function IsMonday(inputdate As Date) As Date

    Select Case Weekday(inputdate)
        Case vbMonday
            dt = Date - 3              
            'dt = Format(dt, "mmddyyyy")
        Case Else
            dt = Date - 1
            'dt = Format(Date - 1, "mmddyyyy")          
            'dt = Format(dt, "mmddyyyy")
    End Select
IsMonday = dt
End Function

通常,当您使用isSomething()时,它应该返回布尔值True/False。我认为您试图以某种方式操纵日期。该函数的值是真是假,因为您明确表示它应该是通过让它返回
布尔值
。为什么您希望返回不同的内容?您能给出一些您期望的输入和相关输出的示例吗?我计划通过过程1传递
public dt
,该过程通过
IsMonday()计算
dt
,然后过程2将用户的原始输入作为
dt
从而
IsMonday()
仅通过一个步骤(步骤1)使用。调用Main Sub过程时使用
dt
作为参数,其中Main Sub根据公共
dt
变量导入一个带日期的文件。