多用于和下一个VBAfunction

我想创build一个简短的代码,希望能节省一些打字时间。

我想实现的是一个VBA函数,它将一个变化的值插入A列的每个单元格中

该值可以用“Wk”(短周期)后跟“17”(这是年份),后面跟着一个星期数字“01”的前缀来分解。 在一周中的每一天,这个重复7次,然后在下一个星期滚动,第二年不可避免地等等。

示例:单元格A1 = Wk1701单元格A2 = Wk1701
…单元格A8 = Wk1702

我确实收到下面的错误,所以我打开意见。

Sub Button1() For y = 1 To 1092 For w = 1 To 52 For x = 17 To 19 Cells(y, 1) = "WK" & x & w Next y Next w Next x End Sub 

亚伦

循环必须完全嵌套,不能从内部循环外循环。

你不需要成为一个循环只是一个计数器。

然后我们只给7个单元块分配相同的值。

我们使用Format(x,"00")1变成01

即使它将ActiveSheet也分配给范围对象的父对象:

 Sub Button1() dim y As Long, w As Long, x As Long,rws as Long y = 1 For x = 17 To 19 For w = 1 To 52 ActiveSheet.Cells(y, 1).Resize(7,1).Value = "WK" & Format(x,"00") & Format(w,"00") y = y + 7 Next w Next x End Sub 

要更快地使用数组而不是多次引用工作表:

 Sub Button1() Dim y As Long, w As Long, x As Long, z As Long, rws as Long Dim OtA() As Variant rws = (19-17+1)*52*7 ReDim OtA(1 To rws, 1 To 1) As Variant y = 1 For x = 17 To 19 For w = 1 To 52 For z = 1 To 7 OtA(y, 1) = "WK" & Format(x, "00") & Format(w, "00") y = y + 1 Next z Next w Next x ActiveSheet.Range("A1").Resize(UBound(OtA, 1)).Value = OtA End Sub