|
本帖最后由 cpq151721 于 2014-6-11 16:05 编辑
如附件,程序编写时出现问题,不能完全符合自己要实现的内容,求帮助,模块代码也在附件中
下记代码已实现单元格的拆分合并,并取得数据,但还是不懂得如何做数据关联,求大神指导
具体实现就是假如“源数据”表中的蓝色行的J-AA列有更新,sheet2对应的J-AA列自动更新(最好是能单个对应关系进行更新)
Sub SVNtest() Dim arr()
Dim brr() As Long
Dim str$, i&, k&, j&, s$, a$, b&, d$, l&, r&, mrgstr$
arr = Sheets("源数据").[b4].CurrentRegion.Value
ReDim brr(1 To (UBound(arr) + 2), 1 To 1)
r = 3
For i = 1 To (UBound(arr) - 3)
str = "": k = 0: s = ""
mrgstr = ""
s = arr(i, 1)
Do
str = str & arr(i + k, 1)
k = k + 1
Loop Until arr(i + k, 1) Like "-------*"
If InStr(s, "----") Then
Else
If InStr(s, "r") Then
For l = 1 To 4
Sheets("Sheet2").Cells(r, l + 1).Value = Split(s, "|", , vbTextCompare)(l - 1)
Next
End If
For j = i + 2 To i + k - 1
mrgstr = mrgstr & arr(j, 1)
mrgstr = mrgstr & " "
Next
Sheets("Sheet2").Cells(r, "F").Value = mrgstr
Range("J" & (i + 2), "AA" & (i + 2)).Copy Sheets("Sheet2").Range("J" & r)
Sheets("sheet2").Rows(r).Interior.ColorIndex = 0
r = r + 1
i = i + k
End If
Next
End Sub
- Sub testppp()
- Dim ar, i As Integer
- n = 2
- Sheets("sheet2").Cells.Clear
- For i = 3 To Sheets("源数据").Cells(Rows.Count, 2).End(3).Row
- If Range("b" & i).Interior.ColorIndex = 33 Then
- ar = Split(Range("b" & i), "|")
- With Sheets("sheet2")
- n = n + 1
- .Cells(n, "a").Resize(1, 4) = ar
- Range("b" & i).EntireRow.Range("j1:aa1").Copy .Cells(n, "j")
- End With
- End If
- Next
- Sheets("sheet2").[a3:aa3].EntireColumn.AutoFit
- End Sub
复制代码
|
|