Имейте 2d массив, нужно искать в одном из столбцов, находя строку и удаляя все после нее.
У меня есть список дат, но формат, в котором он находится в данный момент, имеет длинное значение Time после даты, заканчивающейся в 2019. Я хотел бы найти и заменить 2019 + время только 2019.
Редактировать код
Дата не сохраняется как дата, для всех намерений и целей это строка, которая выглядит примерно как "**** #### 2019 ###### "и я просто ищу способ удалить все после значения (2019).Прямо сейчас, он проходит через все это красиво проверяет значение массива по значению, но на самом деле ничего не меняет. Edit2 Найдено работоспособное решение с использованием функций Instr и Split.НО закралась самая странная ошибка, некоторые даты в debug.print выглядят нормально, например: 06.11.2009 НО после печати в диапазоне 06/11/2019 13/06/2019 13/06/2019 Даже если формат места назначенияпредварительно определено
Public Sub PrintArray (данные как вариант, Cl как диапазон) Cl.Resize (UBound (Data, 1), UBound (Data, 2)) = конец данных Sub Private Private Sub Test ()
Dim Name_col As Integer
Dim Date_col As Integer
Dim Hours_col As Integer
Dim Department_col As Integer
Dim Data_row As Integer
Name_col = 1
Date_col = 2
Hours_col = 3
Department_col = 4
Data_row = 2
Dim i As Integer
Dim zom As Integer
Dim DirArray As Variant
Dim col As Integer
Dim LString As String
Dim LArray() As String
zom = 0
i = 2
col = 2
Dim X As Integer
Application.ScreenUpdating = False
Do While Sheets("Sheet2").Cells(i, 1).Value <> ""
i = i + 1
zom = zom + 1
Loop
Application.ScreenUpdating = True
NumberOfZombies = zom
Debug.Print "Number of zombies" & NumberOfZombies
Worksheets("Sheet2").Activate
DirArray = Sheets("Sheet2").Range(Cells(Data_row, Name_col), Cells(zom, Department_col)).Value
For rw = LBound(DirArray) To UBound(DirArray)
For col = LBound(DirArray) To UBound(DirArray, 2)
LString = DirArray(rw, col)
If InStr(LString, "2019") > 0 Then
LArray = Split(LString)
Debug.Print LArray(0)
DirArray(rw, col) = LArray(0)
End If
Debug.Print DirArray(rw, col)
Next
Next
PrintArray DirArray, Sheets("Sheet3").[A1]
End Sub