Excel中VBA的一个小应用问题,请教大家,请大家指点!
没有学过VB对Excel的认识程度也不高小弟在工作中遇到了这样一个情况这里请朋友们帮忙解决下。数据本身不大,但是有8000+行,废话不多说了,请看下面表大致如下:ABCD...
没有学过VB 对Excel的认识程度也不高
小弟在工作中遇到了这样一个情况 这里请朋友们帮忙解决下。数据本身不大,但是有8000+行,废话不多说了,请看下面
表大致如下:
A B C D
1 1 2
2 3 7
3 8 10
4 12 15
5 16 20
6 30 35
7 36 90
8 91 100
表大致是这样。目的:若下一行的A=B(上一行)+1,那么继续向下查找/循环;否则,在C列和D列中填充出 数据没有连接上的哪一行数据。比如说,第一行A1是1,就先填充在C1,然后循环,在A4那里数据不是11没有连上10那么再D1填充数据10,并且在C2填充数据12,然后循环继续,在A6那里又断了就在D2填充B5即20,C3填充30;继续循环。。。
小弟自己闷头看了一天的东西,但是确实对EXCEL和VB不熟悉,外加明天一上班领导就需要。请大家指点迷津!小弟在线等帮助,感激不尽 展开
小弟在工作中遇到了这样一个情况 这里请朋友们帮忙解决下。数据本身不大,但是有8000+行,废话不多说了,请看下面
表大致如下:
A B C D
1 1 2
2 3 7
3 8 10
4 12 15
5 16 20
6 30 35
7 36 90
8 91 100
表大致是这样。目的:若下一行的A=B(上一行)+1,那么继续向下查找/循环;否则,在C列和D列中填充出 数据没有连接上的哪一行数据。比如说,第一行A1是1,就先填充在C1,然后循环,在A4那里数据不是11没有连上10那么再D1填充数据10,并且在C2填充数据12,然后循环继续,在A6那里又断了就在D2填充B5即20,C3填充30;继续循环。。。
小弟自己闷头看了一天的东西,但是确实对EXCEL和VB不熟悉,外加明天一上班领导就需要。请大家指点迷津!小弟在线等帮助,感激不尽 展开
展开全部
Sub ddd()
Dim m,n as integer
cells(1,3)=cells(1,1)
n=1
For m= 1 To Range("A65535").End(xlUp).Row-1
If Cells(m+1, 1) <> Cells(m, 2) + 1 Then
n=n+1
Cells(n, 4) = Cells(m, 2)
Cells(n-1,3) = Cells(m+1, 1)
End If
Next
End Sub
Dim m,n as integer
cells(1,3)=cells(1,1)
n=1
For m= 1 To Range("A65535").End(xlUp).Row-1
If Cells(m+1, 1) <> Cells(m, 2) + 1 Then
n=n+1
Cells(n, 4) = Cells(m, 2)
Cells(n-1,3) = Cells(m+1, 1)
End If
Next
End Sub
展开全部
Sub ls()
Dim i, n As Integer
Range("C1").Value = Range("A1").Value
i = 1
n = 1
Do While Range("A" & i).Value <> ""
If Range("A" & i + 1).Value <> Range("B" & i).Value + 1 Then
Range("D" & n).Value = Range("B" & i).Value
Range("C" & n + 1).Value = Range("A" & i + 1).Value
n = n + 1
End If
i = i + 1
Loop
End Sub
Dim i, n As Integer
Range("C1").Value = Range("A1").Value
i = 1
n = 1
Do While Range("A" & i).Value <> ""
If Range("A" & i + 1).Value <> Range("B" & i).Value + 1 Then
Range("D" & n).Value = Range("B" & i).Value
Range("C" & n + 1).Value = Range("A" & i + 1).Value
n = n + 1
End If
i = i + 1
Loop
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Sub ChkData()
Dim ra, rd, MaxRow As Long
MaxRow = Range("A" & Rows.Count).End(xlUp).Row
Range("C1:D" & Rows.Count).ClearContents
Range("C1") = Range("A1")
rd = 1
For ra = 2 To MaxRow
If Cells(ra, 1) <> Cells(ra - 1, 2) + 1 Then
Cells(rd, 4) = Cells(ra - 1, 2)
Cells(rd + 1, 3) = Cells(ra, 1)
rd = rd + 1
End If
Next ra
End Sub
Dim ra, rd, MaxRow As Long
MaxRow = Range("A" & Rows.Count).End(xlUp).Row
Range("C1:D" & Rows.Count).ClearContents
Range("C1") = Range("A1")
rd = 1
For ra = 2 To MaxRow
If Cells(ra, 1) <> Cells(ra - 1, 2) + 1 Then
Cells(rd, 4) = Cells(ra - 1, 2)
Cells(rd + 1, 3) = Cells(ra, 1)
rd = rd + 1
End If
Next ra
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询