1
なぜこのコードでは、変数「Duracao」(期間)が行11にのみ書き込まれ、12と13では書き込まれませんか? 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:アプリケーション定義またはオブジェクト定義エラー」というエラーが表示され、最初のループが2番目のステップに進まないようにします。 – MiguelLeal
@MiguelLealこれは、最初の行だけを書くという現在の問題を解決します。あなたのデータには、有効期限ではないいくつかのセルが「日付」であると仮定するなど、他の問題がなければなりません。他にもあるかもしれない。 –