2つの異なるワークブックからの値を使用して経過時間を計算する


0

これが私がやろうとしていることです:

  • 4つの異なるタブと異なるマッドラインデータを含むワークシートがあります(列(日付、時刻、マッドライン、流体レベル)を含む)
  • 現在のワークブックに、 "Time"、 "Elapsed Days"、 "Mudline Height"、および "Fluid Level"の4つの列を持つ新しいワークシートを作成します。
  • "経過日数"列を除くすべての列に簡単に入力できます。基本的に私はそれになりたい

    経過日数=(セルの左側の列で計算された日付と時刻) - 「ガイド」シートのセルB5に入力された日付と時刻。

これが私のコードです。

Sub MudlineData()
    sNamer = "Mudline"

    Dim dateArr(8) As Double

    CreateSheetIf (sNamer)
    Sheets(sNamer).Cells.ClearContents
    Dim currentSheet As Range

    Set currentSheet = Sheets(sNamer).Cells(1, 1) 'Where the current data is going to be pasted

    currentSheet.Offset(0, 0) = "Time"
    currentSheet.Offset(0, 1) = "Elapsed Days"
    currentSheet.Offset(0, 2) = "Mudline(m)"
    currentSheet.Offset(0, 3) = "Fluid Level(m)"

    Set currentSheet = Sheets("Mudline").Cells(2, 1)

    ' gets info from Guide sheet
    file_dir = Sheets("Guide").Cells(2, 2).Value
    filey = Sheets("Guide").Cells(2, 3).Value
    fullFile = file_dir & "\" & filey
    StartT = Sheets("Guide").Cells(2, 5).Value

    Dim wb As Workbook
    Application.ScreenUpdating = False
    Set wb = Workbooks.Open(fullFile, True, True)
    lasty = wb.Worksheets(1).Cells(wb.Worksheets(1).Rows.Count, "A").End(xlUp).Row

    With ThisWorkbook.Worksheets(sNamer)
        For r = 3 To lasty
            'Date and Time
            currentSheet.Offset(0, 0) = wb.Worksheets(1).Cells(r, 1) + wb.Worksheets(1).Cells(r, 2)
            'Elapsed Days
            currentSheet.Offset(0, 1) = currentSheet.Offset(0, 0) - StartT
            'Mudline
            currentSheet.Offset(0, 2) = wb.Worksheets(1).Cells(r, 3)
            'Fluid Level
            currentSheet.Offset(0, 3) = wb.Worksheets(1).Cells(r, 4)
            Set currentSheet = currentSheet.Offset(1, 0)
        Next r
    End With

    wb.Close False
    Set wb = Nothing
    Application.ScreenUpdating = True

End Sub

1
私はExcelの世界最大の専門家ではないかもしれませんが、この質問にはかなり混乱があります。 (1)タイトルには「2つの異なるワークブック」とありますが、質問の本文は5つのワークシートを含む1つのワークブックについて話しているようです。どちらですか? (2)ワークシートの公式で解決できる問題を説明しました =A1-Guide!$B$5。 48行のVBAが必要なのに、一体何をしているのですか。 (3)今どうなっているの? …(続き)
G-Man

1
(続き)…エラーメッセージが表示されますか。あなたは間違った結果を得ていますか? (それらを説明してください。)(4)あなたがある例のデータを示したならば、この問題全体はおそらく理解しやすいでしょう。スクリーンショットを投稿する必要はありません - 実際、 あなたがしていない場合はそれが良いです 。シートのテキスト表現を(必要に応じて)入力するだけです。…(続き)
G-Man

1
(続き)…やったように ここに そして ここに ;使用 テキストを表としてフォーマット あなたが望むならサイト。入力データから予想される出力データを含め(どれがどれであるかを明確に識別し)、Excelに実行させたい計算のより明確な説明を与えます。 (5)問題を診断/デバッグするために何をしましたか?
G-Man
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.