EXCEL工作表中,02行是日期,如何用VBA在01行中显示第几周

EXCEL工作表中,02行是日期,如何用VBA在01行中显示第几周,第1张

知道用函数,那就可以用vba,

for i=1 to 10

    cells(1,i)=worksheetfunctionweeknum(cells(2,i),1)

next i

假设有10列

Dim ThisDay As String = Format(Now, "yyyy-MM-dd") '获得当前日期字符串

Dim ThisDateTime As DateTime = ConvertToDateTime(ThisDay) '当前日期转换成DateTime

Dim ThisWeekDay As Integer = ThisDateTimeDayOfWeek '获得当前日期是星期

Dim differadd As Integer = 1 - ThisWeekDay '相差的天数(星期1与当前星期几相差的天数)

Dim MyAdd As New TimeSpan(differadd, 0, 0, 0)

Dim MyYear As Integer = Format(Now, "yyyy") '获取当前日期的年份

Dim MyMonth As Integer = Format(Now, "MM") '获取当前日期的月份

Dim MyDay As Integer = Format(Now, "dd") '获取当前日期是几号

Dim MyToday As DateTime = New DateTime(MyYear, MyMonth, MyDay)

Dim Yourday As DateTime = MyTodayAdd(MyAdd)

MsgBox("本周星期一的日期是:" & Yourday)

不用vba就可以解决

在第一列输入日期,将单元格的格式设置为日期格式

在第二列让每行的值等于第一列对应行,然后将第二列单元格格式设置为日期格式中的星期几这种类型,就ok了

Option Explicit

Sub zjh()

Dim i%, ttlR%, mD As Date

ttlR = 10 '最大行数

mD = Date

For i = 1 To ttlR

Cells(i, 1)Value = Month(mD + i - 1) & "/" & Day(mD + i - 1) & Chr(10) & Format(mD + i - 1, "ddd")

Next

End Sub

WorksheetsCount

'获得当前工作薄含有工作表的数量

ActiveSheetName

'获得当前被激活的工作表的名称

Worksheets(表名变量)Select

'激活该工作表

Weekday (变量,2)

把变量的日期,转为星期几

这个数据是1~7,即我们认知的星期一到星期天

写个判断,如果今天是1,则输出显示”星期一“。依次类推

这样就得到了你想要的代码的所有关键性数据,简略代码如下:

for i=1 to WorksheetsCount ‘循环1到最后一张表

Worksheets(i)Select '激活第1张表,Worksheets()中是纯数字,则找到对应顺序的表

变量名1=ActiveSheetName '获得该表的名称

变量名2=Weekday (Worksheets(变量名1)Range(f1),2) '获得F1单元格中的日期,并转为星期几

Select Case 变量名2

Case 1

Worksheets(变量名1)Range(g1)="星期一" '如果变量名2的数据是1,则在G1里显示”星期一“

Case 2

Worksheets(变量名1)Range(g1)="星期二"

Case 3

Worksheets(变量名1)Range(g1)="星期三"

Case 4

Worksheets(变量名1)Range(g1)="星期四"

Case 5

Worksheets(变量名1)Range(g1)="星期五"

Case 6

Worksheets(变量名1)Range(g1)="星期六"

Case 7

Worksheets(变量名1)Range(g1)="星期天"

End Select

next i

date为当日的日期,通常now为日期时间格式,而DATE 只去日期格式。

=Format("3/31/09", "mm-dd-yyyy")

关于此例中用到的Format函数的相关知识:

Format函数

根据有效的命名表达式来对指定的表达式进行格式化。

Format(expression[, format[, firstdayofweek[, firstweekofyear]]])

Format 函数具有下面几个参数:

expression 必要参数。任何有效的表达式。

format 可选参数。有效的命名表达式或用户自定义格式表达式。

firstdayofweek 可选参数。常数,表示一星期的第一天。

firstweekofyear 可选参数。常数,表示一年的第一周。

扩展资料:

Month 代表每年中月份的数字。如果所输入的月份大于 12,将从指定年份的一月份开始往上加算。例如:DATE(2008,14,2) 返回代表 2009 年 2 月 2 日的序列号。

如果所输入的月份小于 0,将从指定年份前一年的十二月份开始往下减去相应的月份数。例如:DATE(2008,-3,2) 返回代表 2007年 9 月 2 日的序列号。

Day 代表在该月份中第几天的数字。如果 day 大于该月份的最大天数,则将从指定月份的第一天开始往上累加。例如,DATE(2008,1,35) 返回代表 2008 年 2 月 4 日的序列号。

参考资料来源:百度百科-date函数

以上就是关于EXCEL工作表中,02行是日期,如何用VBA在01行中显示第几周全部的内容,包括:EXCEL工作表中,02行是日期,如何用VBA在01行中显示第几周、vb.net中如何获取当前日期所在星期的星期一的具体年月日、请问各位EXCEL高手,如何在知道日期的情况下,知道是星期几呢VBA等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9777036.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存