excel使用vba如何能够按周输入数据

excel使用vba如何能够按周输入数据,第1张

m = (m + 1) Mod 7有问题。

当m=6时,(m + 1) Mod 7=0

Cells(j, m) 为Cells(j, 0)

我们知道行列号都是从1开始的,所以当然会报错。

另外For j = 1 To 20

然后又j = 2

并且For i = 0 To 8

然后又 i = 0

这不都是死循环了么?

Data什么意思?应该是Date吧。

而且整个程序逻辑混乱。帮你改写一下,你看能不能用:

Sub test()

m = Weekday(Now, 2)

For j = 1 To 20

For i = 0 To 6

Cells(j, (i + 1)) = Date - m + i + (j 7) - 7

Next

Next

End Sub

还可以进一步改写:

Sub test()

m = Weekday(Now, 2)

For j = 1 To 20

For i = 0 To 6

If j = 1 And i < m Then

Cells(j, (i + 1)) = ""

Else

Cells(j, (i + 1)) = Date - m + i + (j 7) - 7

End If

Next

Next

End Sub

在A2输入:

=ROUNDUP(DATEDIF(DATE(YEAR(A1),1,1),A1-WEEKDAY(DATE(YEAR(A1),1,1),3)+8,"yd")/7,0)

星期天为一周中的第一天计算,不管是什么版本,都可以。

weekday("2010-4-8")

取的参数中的日期是一个星期的第几天,星期天为1、星期一为2、星期二为3

依此类推。

配合weekdayname()更好。

weekdayname(weekday("2010-4-8"))

Sub 当前日期()

Dim idate As Date

idate = Date

ActiveSheetRange("A1")Value = idate

End Sub

以上就是关于excel使用vba如何能够按周输入数据全部的内容,包括:excel使用vba如何能够按周输入数据、如何在excel中得到周数高手进!、VBA如何判断一个日期是什么星期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9499620.html

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

发表评论

登录后才能评论

评论列表(0条)

保存