#--------------------------------V1-------------------------------------#
Sub test()
With Sheets("Change Notice")
totalRow = Application.CountA(.Range("A:A"))
'MsgBox TotalRow
startRow = 2
For i = startRow To totalRow
arr = Split(.Cells(i, "d").Text, Chr(10))
arrTimeStart = Split(Format(.Cells(i, "b"), "yyyymmdd hhmmss"), " ")
arrTimeEnd = Split(Format(.Cells(i, "c"), "yyyymmdd hhmmss"), " ")
'MsgBox (Format(.Cells(i, "b"), "yyyymmdd hhmmss"))
For j = 0 To UBound(arr)
'Sheets("RESULT").Range("A65536").End(xlUp).Offset(1, 0).Value = .Cells(i, "A").Value
Sheets("RESULT").Range("B65536").End(xlUp).Offset(1, 0).Value = arrTimeStart(0)
Sheets("RESULT").Range("C65536").End(xlUp).Offset(1, 0).Value = arrTimeStart(1)
Sheets("RESULT").Range("D65536").End(xlUp).Offset(1, 0).Value = arrTimeEnd(0)
Sheets("RESULT").Range("E65536").End(xlUp).Offset(1, 0).Value = arrTimeEnd(1)
Sheets("RESULT").Range("F65536").End(xlUp).Offset(1, 0).Value = arr(j)
Sheets("RESULT").Range("G65536").End(xlUp).Offset(1, 0).Value = .Cells(i, "E").Value
Sheets("RESULT").Range("H65536").End(xlUp).Offset(1, 0).Value = .Cells(i, "F").Value
Sheets("RESULT").Range("I65536").End(xlUp).Offset(1, 0).Value = .Cells(i, "G").Value
Next j
Next i
End With
End Sub
#--------------------------------V2-------------------------------------#
Sub test()
With Sheets("Change Notice")
totalRow = Application.CountA(.Range("A:A"))
'MsgBox TotalRow
startRow = 2
For i = startRow To totalRow
'd列表示的是CI那一列,将其拆成一个数组
arr = Split(.Cells(i, "d").Text, Chr(10))
'初始化时间,变更号等信息
arrTimeStart = Split(Format(.Cells(i, "b"), "yyyymmdd hhmmss"), " ") 'b列----开始时间
arrTimeEnd = Split(Format(.Cells(i, "c"), "yyyymmdd hhmmss"), " ") 'c列---结束时间
Sheets("RESULT").Range("A:E").NumberFormatLocal = "@"
Sheets("RESULT").Range("A65536").End(xlUp).Offset(1, 0).Value = .Cells(i, "A").Value '赋值变更号
Sheets("RESULT").Range("B65536").End(xlUp).Offset(1, 0).Value = arrTimeStart(0)
Sheets("RESULT").Range("C65536").End(xlUp).Offset(1, 0).Value = arrTimeStart(1)
Sheets("RESULT").Range("D65536").End(xlUp).Offset(1, 0).Value = arrTimeEnd(0)
Sheets("RESULT").Range("E65536").End(xlUp).Offset(1, 0).Value = arrTimeEnd(1)
'CI 名初始化为空
host = ""
For j = 0 To UBound(arr) '开始遍历CI数组
LTrim (RTrim(arr(j))) '去除开头和末尾的空格
'新增arr2 数组用处理空格 tab等键
arr2 = Split(arr(j), " ")
'如果数组不为空
If (UBound(arr2) > 0) Then
For k = 0 To UBound(arr2)
LTrim (RTrim(arr2(k)))
If (host = "" And arr2(k) <> "") Then '如果host是初值以及arr2第一个值不为空则直接赋值
host = arr2(j)
ElseIf (arr2(k) <> "") Then '否则拼接
host = host & "," & arr2(k)
End If
Next k
Else
If (host = "" And arr(j) <> "") Then
host = arr(j)
ElseIf (arr(j) <> "") Then
host = host & "," & arr(j)
End If
End If
Next j
'将处理完毕的host赋值给RESULT表
Sheets("RESULT").Range("F65536").End(xlUp).Offset(1, 0).Value = host
Next i
End With
End Sub
Sub URL()
With Sheets("Change Notice")
totalRow = Application.CountA(.Range("A:A"))
startRow = 2
For i = startRow To totalRow
'd列表示的是CI那一列,将其拆成一个数组
arr = Split(.Cells(i, "f").Text, Chr(10))
For j = 0 To UBound(arr)
If (InStr(LCase(arr(j)), "http")) Then
arr(j) = Replace(arr(j), ";", "")
arr(j) = Replace(arr(j), ";", "")
LTrim (RTrim(arr(j)))
MsgBox arr(j)
a = arr(j)
End If
Next j
Next i
End With
End Sub
#-------------------------------------V3-----------------------------#
Sub test()
With Sheets("Change Notice")
Worksheets.Add().Name = "RESULT"
totalRow = Application.CountA(.Range("A:A"))
'MsgBox TotalRow
startRow = 2
For i = startRow To totalRow
arr = Split(.Cells(i, "d").Text, Chr(10))
arrURL = Split(.Cells(i, "f").Text, Chr(10))
arrTimeStart = Split(Format(.Cells(i, "b"), "yyyymmdd hhmmss"), " ")
arrTimeEnd = Split(Format(.Cells(i, "c"), "yyyymmdd hhmmss"), " ")
Sheets("RESULT").Range("A:G").NumberFormatLocal = "@"
URL = .Cells(i, "F").Text
For j = 0 To UBound(arr)
'变更号
Sheets("RESULT").Range("B65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim((.Cells(i, "A").Value)))
Sheets("RESULT").Range("B65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim((.Cells(i, "A").Value)))
'开始日期
Sheets("RESULT").Range("D65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrTimeStart(0)))
Sheets("RESULT").Range("D65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrTimeStart(0)))
'开始时间
Sheets("RESULT").Range("E65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrTimeStart(1)))
Sheets("RESULT").Range("E65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrTimeStart(1)))
'结束日期
Sheets("RESULT").Range("F65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrTimeEnd(0)))
Sheets("RESULT").Range("F65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrTimeEnd(0)))
'结束时间
Sheets("RESULT").Range("G65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrTimeEnd(1)))
Sheets("RESULT").Range("G65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrTimeEnd(1)))
'CI
Sheets("RESULT").Range("A65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arr(j)))
Sheets("RESULT").Range("A65536").End(xlUp).Offset(1, 0).Value = "*" '用来屏蔽URL(当object字段里包含了)
'URL
Sheets("RESULT").Range("C65536").End(xlUp).Offset(1, 0).Value = "*"
Sheets("RESULT").Range("C65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arr(j)))
Next j
If (InStr(LCase(URL), "http")) Then
For k = 0 To UBound(arrURL)
If (InStr(LCase(arrURL(k)), "http")) Then
arrURL(k) = Replace(arrURL(k), ";", "")
'MsgBox (InStr(arrURL(k)))
arrURL(k) = Mid(arrURL(k), InStr(arrURL(k), "http"), Len(arrURL(k))) '去除开头的非法字符
'变更号
Sheets("RESULT").Range("B65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(.Cells(i, "A").Value))
'开始日期
Sheets("RESULT").Range("D65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrTimeStart(0)))
'开始时间
Sheets("RESULT").Range("E65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrTimeStart(1)))
'结束日期
Sheets("RESULT").Range("F65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrTimeEnd(0)))
'结束时间
Sheets("RESULT").Range("G65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrTimeEnd(1)))
'CI
Sheets("RESULT").Range("A65536").End(xlUp).Offset(1, 0).Value = "*"
'URL
Sheets("RESULT").Range("C65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrURL(k)))
End If
Next k
End If
Next i
End With
End Sub
#-----------------------------V4----------------------------------------------#
'#--------------20160304 修复Host字段为空--------------------------------------#
'#--------------20140304 修复Instr函数 不能判断0-----------------------------------#
Sub test()
With Sheets("Change Notice")
Worksheets.Add().Name = "RESULT"
totalRow = Application.CountA(.Range("A:A"))
'MsgBox TotalRow
startRow = 2
Dim arrTimeStart() As String
Dim arrTimeEnd() As String
Dim arrURL() As String
Dim temp As String
Dim TEMPT As String
For i = startRow To totalRow
arr = Split(.Cells(i, "d").Text, Chr(10))
arrURL = Split(.Cells(i, "f").Text, Chr(10))
arrTimeStart = Split(Format(.Cells(i, "b"), "yyyymmdd hhmmss"), " ")
arrTimeEnd = Split(Format(.Cells(i, "c"), "yyyymmdd hhmmss"), " ")
Sheets("RESULT").Range("A:G").NumberFormatLocal = "@"
URL = .Cells(i, "F").Text
For j = 0 To UBound(arr)
temp = arr(j)
If (Len(temp) > 2) Then '去除为空的
idnit = Init(.Cells(i, "A").Value, arrTimeStart(0), arrTimeStart(1), arrTimeEnd(0), arrTimeEnd(1), temp, "*") '设置Host 字段
idnit = Init(.Cells(i, "A").Value, arrTimeStart(0), arrTimeStart(1), arrTimeEnd(0), arrTimeEnd(1), "*", temp) '设置URL(Object)字段
End If
Next j
If (InStr(LCase(URL), "http")) Then
For k = 0 To UBound(arrURL)
If (InStr(LCase(arrURL(k)), "http")) Then
arrURL(k) = Replace(arrURL(k), ";", "")
'MsgBox (InStr(arrURL(k)))
TEMPT = Mid(arrURL(k), (InStr(LCase(arrURL(k)), "http")), Len(arrURL(k))) '去除开头的非法字符 Mid 函数不能以0开头
idnit = Init(.Cells(i, "A").Value, arrTimeStart(0), arrTimeStart(1), arrTimeEnd(0), arrTimeEnd(1), "*", TEMPT) '设置Object 的Host
End If
Next k
End If
Next i
End With
End Sub
'初始化函数
Function Init(changeID As String, arrStart_0 As String, arrStart_1 As String, arrEnd_0 As String, arrEnd_1 As String, CI As String, URL As String)
'变更号
Sheets("RESULT").Range("B65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(changeID))
'开始日期
Sheets("RESULT").Range("D65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrStart_0))
'开始时间
Sheets("RESULT").Range("E65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrStart_1))
'结束日期
Sheets("RESULT").Range("F65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrEnd_0))
'结束时间
Sheets("RESULT").Range("G65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrEnd_1))
'CI
Sheets("RESULT").Range("A65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(CI))
'URL
Sheets("RESULT").Range("C65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(URL))
Init = 0
End Function
----------------------------------------------------------------V6---------------------------------------
'#--------------20160304 修复Host字段为空--------------------------------------#
'#--------------20140304 修复Instr函数 不能判断0-----------------------------------#
'#--------------20160318 增加只对包含URL的变更做object处理----------------------#
'#--------------20160318 修改为只对非网络类变更做object处理----------------------#
Sub test()
With Sheets("Change Notice")
Worksheets.Add().Name = "RESULT"
totalRow = Application.CountA(.Range("A:A"))
'MsgBox TotalRow
startRow = 2
Dim arrTimeStart() As String
Dim arrTimeEnd() As String
Dim arrURL() As String
Dim temp As String
Dim TEMPT As String
Dim containNetwork As String
For i = startRow To totalRow
arr = Split(.Cells(i, "d").Text, Chr(10))
arrURL = Split(.Cells(i, "f").Text, Chr(10))
arrTimeStart = Split(Format(.Cells(i, "b"), "yyyymmdd hhmmss"), " ")
arrTimeEnd = Split(Format(.Cells(i, "c"), "yyyymmdd hhmmss"), " ")
Sheets("RESULT").Range("A:G").NumberFormatLocal = "@"
URL = .Cells(i, "F").Text
containNetwork = .Cells(i, "G")
For j = 0 To UBound(arr)
temp = arr(j)
If (Len(temp) > 2) Then '去除为空的
idnit = Init(.Cells(i, "A").Value, arrTimeStart(0), arrTimeStart(1), arrTimeEnd(0), arrTimeEnd(1), temp, "*") '设置Host 字段
'只有非网络的才设置Object
If (containNetwork <> "网络") Then
idnit = Init(.Cells(i, "A").Value, arrTimeStart(0), arrTimeStart(1), arrTimeEnd(0), arrTimeEnd(1), "*", temp) '设置URL(Object)字段
End If
End If
Next j
If (InStr(LCase(URL), "http") > 0) Then
For k = 0 To UBound(arrURL)
If (InStr(LCase(arrURL(k)), "http") > 0) Then
arrURL(k) = Replace(arrURL(k), ";", "")
TEMPT = Mid(arrURL(k), (InStr(LCase(arrURL(k)), "http")), Len(arrURL(k))) '去除开头的非法字符 Mid 函数 起始位置不能是0
idnit = Init(.Cells(i, "A").Value, arrTimeStart(0), arrTimeStart(1), arrTimeEnd(0), arrTimeEnd(1), "*", TEMPT) '设置Object 的Host
End If
Next k
End If
Next i
End With
End Sub
'初始化函数
Function Init(changeID As String, arrStart_0 As String, arrStart_1 As String, arrEnd_0 As String, arrEnd_1 As String, CI As String, URL As String)
'变更号
Sheets("RESULT").Range("B65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(changeID))
'开始日期
Sheets("RESULT").Range("D65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrStart_0))
'开始时间
Sheets("RESULT").Range("E65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrStart_1))
'结束日期
Sheets("RESULT").Range("F65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrEnd_0))
'结束时间
Sheets("RESULT").Range("G65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrEnd_1))
'CI
Sheets("RESULT").Range("A65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(CI))
'URL
Sheets("RESULT").Range("C65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(URL))
Init = 0
End Function
#----------------------EOPS-------------------------------------------#
Sub test()
With Sheets("SQL Results")
Worksheets.Add().Name = "RESULT"
totalRow = Application.CountA(.Range("B:B"))
startRow = 2
Dim arrTimeStart() As String
Dim arrTimeEnd() As String
Dim arrURL() As String
Dim temp As String
Dim TEMPT As String
Dim containNetwork As String
For i = startRow To totalRow
arr = Split(.Cells(i, "j").Text, ";")
'arrURL = Split(.Cells(i, "f").Text, Chr(10))
arrTimeStart = Split(Format(.Cells(i, "f"), "yyyymmdd hhmmss"), " ")
arrTimeEnd = Split(Format(.Cells(i, "g"), "yyyymmdd hhmmss"), " ")
Sheets("RESULT").Range("A:G").NumberFormatLocal = "@"
For j = 0 To UBound(arr)
temp = arr(j)
If (Len(temp) > 2) Then '去除为空的
idnit = Init(.Cells(i, "b").Value, arrTimeStart(0), arrTimeStart(1), arrTimeEnd(0), arrTimeEnd(1), temp, "*") '设置Host 字段
End If
Next j
Next i
End With
End Sub
'初始化函数
Function Init(changeID As String, arrStart_0 As String, arrStart_1 As String, arrEnd_0 As String, arrEnd_1 As String, CI As String, URL As String)
'变更号
Sheets("RESULT").Range("B65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(changeID))
'开始日期
Sheets("RESULT").Range("D65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrStart_0))
'开始时间
Sheets("RESULT").Range("E65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrStart_1))
'结束日期
Sheets("RESULT").Range("F65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrEnd_0))
'结束时间
Sheets("RESULT").Range("G65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(arrEnd_1))
'CI
Sheets("RESULT").Range("A65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(CI))
'URL
Sheets("RESULT").Range("C65536").End(xlUp).Offset(1, 0).Value = LTrim(RTrim(URL))
Init = 0
End Function