Вот что я пытаюсь сделать:
- У меня есть лист с четырьмя различными вкладками с различными данными линии грязи (со столбцами (дата, время, грязь и уровень жидкости)
- Я хочу создать новый лист в моей текущей книге, который будет иметь четыре столбца: "Время", "Прошедшие дни", "Высота линии грязи" и "Уровень жидкости".
- Я легко заполняю все столбцы, кроме столбца "Истекшие дни". В основном я хочу, чтобы это было
Elapsed Days = (дата + время, вычисленное в столбце слева от ячейки) - дата + время, введенное в ячейку 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