1
爲什麼此代碼只在第11行中寫入變量「Duracao」(持續時間),而不是在第12和第13中寫入變量?你可以在這裏看到excel表格的圖像:https://i.stack.imgur.com/Z6LJw.png爲什麼此代碼只將變量寫入表的第一行?
基本上,我爲每架直升機開始和結束日期的幾個工作,我想獲得每個工作的持續時間(天)。
Sub EscalaDinâmicaHTA()
Dim NumHelis As Integer
Dim DataInicio As Date
Dim DataFim As Date
Dim ContData As Double
Dim LinHeliInicial As Integer
Dim i As Integer
Dim j As Integer
Dim k As Integer
NumHelis = Worksheets(1).Range("B8").Value
LinHeliInicial = 11
LinTotal = LinHeliInicial + NumHelis - 1
i = 2
j = 3
k = 4
Do While LinHeliInicial <= LinTotal
Do While i < 26 And j < 27 And k < 28
DataInicio = Worksheets(1).Cells(LinHeliInicial, i).Value
ContData = DateValue(DataInicio)
ContData = Val(ContData)
DataFim = Worksheets(1).Cells(LinHeliInicial, j).Value
DataFim = DateValue(DataFim)
Duracao = DataFim - DateValue(DataInicio)
Worksheets(1).Cells(LinHeliInicial, k).Value = Duracao + 1
Duracao = ContData + Duracao
Duracao = Val(Duracao)
ContData = ContData - 43072
Duracao = Duracao - 43072
k = k + 3
j = j + 3
i = i + 3
Loop
Do While ContData <= Duracao
Cells(LinHeliInicial, ContData).Interior.ColorIndex = 4
ContData = ContData + 1
Loop
LinHeliInicial = LinHeliInicial + 1
Loop
End Sub
我已經做到了,但它不工作。它出現了一個錯誤:「運行時錯誤1004:應用程序定義或對象定義的錯誤」,它阻止了第一個循環進入第二步。 – MiguelLeal
@MiguelLeal這解決了當前只寫第一行的問題。您的數據中必須有其他問題,例如假設某些單元格是「日期」,而它們不是有效的日期。也可能是別的。 –