如何让excel vba输入的数据为百分比
3个回答
展开全部
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
当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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询