编辑数组值VBA-使用Instr&Split-日期输出偏心率

时间:2019-06-26 10:56:49

标签: arrays excel vba

有一个二维数组,需要搜索一列以找到一个字符串并删除其后的所有内容。

我有一个日期列表,但当前使用的格式具有较长的时间值 在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]

结束子

0 个答案:

没有答案