これが私がやろうとしていることです:
- 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
(続き)…エラーメッセージが表示されますか。あなたは間違った結果を得ていますか? (それらを説明してください。)(4)あなたがある例のデータを示したならば、この問題全体はおそらく理解しやすいでしょう。スクリーンショットを投稿する必要はありません - 実際、 あなたがしていない場合はそれが良いです 。シートのテキスト表現を(必要に応じて)入力するだけです。…(続き)
—
G-Man
(続き)…やったように ここに そして ここに ;使用 テキストを表としてフォーマット あなたが望むならサイト。入力データから予想される出力データを含め(どれがどれであるかを明確に識別し)、Excelに実行させたい計算のより明確な説明を与えます。 (5)問題を診断/デバッグするために何をしましたか?
—
G-Man
=A1-Guide!$B$5
。 48行のVBAが必要なのに、一体何をしているのですか。 (3)今どうなっているの? …(続き)