1. vba计算日期差
'输入日期,确定按钮
Private Sub CommandButton1_Click()
StartDate = TextBox1.Value
EndDate = TextBox2.Value
TextBox1.Value = ""
TextBox2.Value = ""
Input_Date.Hide
End Sub
'输入日期,取消按钮
Private Sub CommandButton2_Click()
TextBox1.Value = ""
TextBox2.Value = ""
StartDate = ""
EndDate = ""
Input_Date.Hide
End Sub
'输入日期,初始化文本框
Private Sub TextBox1_Enter()
If TextBox1.Value = "" Then TextBox1.Value = Format(Date, "yyyymmdd")
End Sub
'输入日期,离开起始日期
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.Value Like "########" Then
TextBox2.Value = TextBox1.Value
TextBox1.Value = DateSerial(Left(TextBox1.Value, 4), Mid(TextBox1.Value, 5, 2), Right(TextBox1.Value, 2))
Else
'日期有误,留在输入框
MsgBox "日期有误,请重新输入!", vbOKOnly, "iamlaosong"
TextBox1.Value = Format(Date, "yyyymmdd")
Cancel = True
End If
End Sub
'输入日期,离开截止日期
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox2.Value Like "########" Then
TextBox2.Value = DateSerial(Left(TextBox2.Value, 4), Mid(TextBox2.Value, 5, 2), Right(TextBox2.Value, 2))
If TextBox2.Value < TextBox1.Value Then
MsgBox "截止日期不能小于起始日期!", vbOKOnly, "iamlaosong"
Cancel = True
End If
Else
MsgBox "日期有误,请重新输入!", vbOKOnly, "iamlaosong"
TextBox2.Value = Format(TextBox1.Value, "yyyymmdd")
Cancel = True
End If
End Sub
2. vba中日期相减
因为这个单元格设置了条件格式,或者是VBA代码造成的.点一下这个单元格,在格式菜单,条件格式,将条件删除试试.EXCEL2007及以上版本,条件格式在开始菜单中
3. vba中的日期如何比较大小
date为当日的日期,通常now为日期时间格式,而DATE 只去日期格式。
=Format("3/31/09", "mm-dd-yyyy") 关于此例中用到的Format函数的相关知识: Format函数 根据有效的命名表达式来对指定的表达式进行格式化。Format(expression[, format[, firstdayofweek[, firstweekofyear]]]) Format 函数具有下面几个参数: expression 必要参数。任何有效的表达式。format 可选参数。有效的命名表达式或用户自定义格式表达式。firstdayofweek 可选参数。常数,表示一星期的第一天。firstweekofyear 可选参数。常数,表示一年的第一周。4. vba 日期计算
vba的countif函数使用:
许多EXCEL问题都涉及数据计数,对于一些简单的计数,通常使用COUNT函数或COUNTA函数就可以解决。然而,在实际的业务处理当中,往往存在诸多条件的限制,仅仅使用简单的统计函数是无法满足人们的实际需求的,例如多条件计数、统计不重复个数等。
例如,在一个EXCEL表格中,D列是考生的数学考试成绩,我们想统计数学成绩及格的人数。可以使用“=COUNTIF(D:D,">=60")”来实现。
本例中,COUNTIF函数可以对区域中满足单个条件的单元格区域进行计数。语法如下:
COUNTIF(参数一,参数二),其中参数一为需要计算其中满足条件的单元格数目的单元格区域,参数二是用于定义将对哪些单元格进行计数的数字、表达式、单元格引用或文本字符串。
COUNTIF函数的常见用法如下:(假如数据所在单元格区域命名为“ Data ”)
公式说明:
=COUNTIF(Data,"=") 返回真空单元格个数(真空单元格是指什么都没有的单元格)
=COUNTIF(Data,"") 返回真空+假真空单元格个数(假真空是指0字符的空文本)
=COUNTIF(Data,"<>")
返回非真空单元格个数
=COUNTIF(Data,"*")
返回文本型单元格个数
=COUNTIF(Data,"<9.99E+307")
返回数值型单元格个数
=COUNTIF(Data,"<>""") 返回区域内所有单元格个数
=COUNTIF(Data,"<0") 返回偶包含负值的单元格个数
=COUNTIF(Data,"<>0") 返回真不等于零的单元格个个数
=COUNTIF(Data,60)
返回值等于60的单元格个数
=COUNTIF(Data,">60") 返回值大于60的单元格个数
=COUNTIF(Data,"<60") 返回值小于60的单元格个数
=COUNTIF(Data,">=60")
返回值大于等于60的单元格个数
=COUNTIF(Data,"<=60")
返回值小于等于60的单元格个数
=COUNTIF(Data,A1)
返回值与A1单元格内容相同的单元格个数
=COUNTIF(Data,">"&A1) 返回值大于A1单元格内容的单元格个数
=COUNTIF(Data,"<"&A1) 返回值小于A1单元格内容的单元格个数
=COUNTIF(Data,"???")
返回字符等于3的单元格个数
=COUNTIF(Data,"YDL")
返回值等于YDL的单元格个数
=COUNTIF(Data,"YDL?")
返回以字母YDL开头且字符数等于4的单元格个数
=COUNTIF(Data,"YDL*")
返回以字母YDL开头的文本单元格的个数
=COUNTIF(Data,"?YDL*")
返回第2,3,4字符为YDL的单元格个数
=COUNTIF(Data,"*YDL*")
返回含的YDL字符的单元格个数
=COUNTIF(Data,"*"&A1&"*")
返回包含A1单元格内容的文本单元格个数
=COUNTIF(Data,TODAY()) 返回值等于当前日期的单元格个数
=COUNTIF(Data,">"&AVERAGE(Data)) 返回大于均值的单元格个数
=SUM(COUNTIF(Data,">"&{10,15})*{1,-1})
返回大于10小于等于15的单元格个数
=SUM(COUNTIF(Data,{TRUE,FALSE}))
返回包含逻辑值的单元格个数
特别指出的是,在EXCEL2010中,新增了一个多条件计数函数,那就是“COUNTIFS” ,假如在一个EXCEL表格中,D3:D50单元格的内容是职工的年龄,E3:E50单元格的内容是是否有房,F3:F50单元格的内容是是否有车,那么统计职工中35岁以上有房有车的人数应该用如下公式:
COUNTIFS(D3:D50,">35",E3:E50,"是",F3:F50,"是") 。
5. vba中日期相减得到数据格式
用VBA正则表达式即可(自定义函数代码如下)
Function feiyong(rng As String)
Set reg = CreateObject("vbscript.regexp")
reg.Global = True
reg.Pattern = "\d+"
Set mat = reg.Execute(rng)
For Each m In mat
strr = strr + Val(m)
Next
feiyong = strr
End Function
alt+f11,新建模块,将代码写到模块里即可。
- 相关评论
- 我要评论
-