首页 > 解决方案 > Excel VBA - 为每个日期添加额外天数的日期循环,直到相邻列结束

问题描述

嗨,下面的代码有效,但是我在日期列中不断收到“溢出”错误。日期应该在相邻列(lastrow)的末尾停止生成,但是由于某种原因,日期仍然存在。请不要这只是我其余代码的一个子集。

Sub TradeDump()

Dim ws As Worksheet
Dim wsp As Worksheet
Dim wsc As Worksheet
Dim i As Integer
Dim j As Integer
Dim rng As Range
Dim rnge As Range
Dim Rnger As Range
Dim ePlaceholder As Range
Dim dater As Date
Dim lastRow As Double
Dim counter As Integer
Dim howmanytrades As Integer
Dim lasthoora As Double
Dim Clearer As Range
Dim Clearer2 As Range

lastRow = ws.Cells(Rows.Count, "E").End(xlUp).Row

lasthoora = lastRow - 1

dater = wsc.Range("MonthE")

i = 1
counter = 2
howmanytrades = wsp.Range("G6", wsp.Range("G6").End(xlDown)).Rows.Count

Do Until i = lasthoora
   For j = 1 To howmanytrades
        If (j = lasthoora) Then Exit For
        ws.Cells(counter, 4).Value = dater
        counter = counter + 1
    Next j
    i = i + input1
    dater = dater + 30
Loop


End Sub

标签: excelvba

解决方案


我很难理解您在“直到”循环中所做的事情。使用 For...Next 可能会更好。但至少,我会改变

Do Until i = lasthoora

Do Until i >= lasthoora

它将使您免于以某种方式跳过触发器并无限期地继续。


推荐阅读