有一个二维数组,需要搜索一列以找到一个字符串并删除其后的所有内容。
我有一个日期列表,但当前使用的格式具有较长的时间值 在2019年结束的日期之后。我想查找并替换2019年+时间 到2019年。
修改代码
日期不存储为日期,出于所有目的和目的,它是一个看起来像“ **** #### 2019 ######”的字符串,我只是在寻找一种方法删除值后的所有内容(2019)。 现在,它逐步检查所有值,很好地检查数组值 但实际上并没有改变任何东西。 编辑2 使用Instr&Split功能找到可行的解决方案。 但是最怪异的臭虫潜入了 一些日期在debug.print中看起来很好 例如:打印到范围后的11/11/2019 BUT 06/11/2019 13/06/2019 13/06/2019 即使目的地的格式是预先定义的
公共子PrintArray(数据为变量,Cl为范围) Cl.Resize(UBound(Data,1),UBound(Data,2))=数据 结束子 私人子测试()
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]
结束子