VB 数据关键字选择

kuhoo23 2014-12-15 03:25:48
我做一个软件二次开发,将获得的数据临时放在一个excel表里,如图。

我想将数据第一列按照特定的顺序依次写入到excel的文件里,先将第一列"P-"开头的提出,写入到excel,再将"F-"开头的提出写入到excel。然后是"M-","P-"依次写入,请教大家用怎样的语句可以实现。谢谢!
...全文
188 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kuhoo23 2014-12-16
  • 打赏
  • 举报
回复
引用 5 楼 Topc008 的回复:
参考一下:

Sub test()
    ''代码放在目标表格的vbe里
    ''首先对a~e列进行排序
    Columns("A:E").Sort Key1:=Range("A1")
    Dim iStart As Long, iEnd As String, i As Long
    Dim j As Long, nR As Long, cR As Long, ww
    ww = Split("p-,f-,m-,pe", ",")
    nR = Range("a1").End(xlDown).Row ''最后一列所在的行
    cR = 1
    For i = 0 To UBound(ww)
        iStart = 0
        iEnd = 0
        For j = 1 To nR
            If LCase$(Left$(Cells(j, 1), 2)) = ww(i) Then
                If iStart = 0 Then iStart = j
                iEnd = j
            End If
        Next
        ''复制数据块
        Range("a" & iStart & ":e" & iEnd).Copy Range("h" & cR)
        cR = cR + iEnd - iStart + 1
    Next
End Sub


......
非常感谢,另外想请问下,我这样将抽取的数据保存在EXCEL中操作,感觉速度不是很快,有没有更合适的方法(不使用数据库),进行排序、统计、汇总。
一如既往哈 2014-12-15
  • 打赏
  • 举报
回复
参考一下:

Sub test()
    ''代码放在目标表格的vbe里
    ''首先对a~e列进行排序
    Columns("A:E").Sort Key1:=Range("A1")
    Dim iStart As Long, iEnd As String, i As Long
    Dim j As Long, nR As Long, cR As Long, ww
    ww = Split("p-,f-,m-,pe", ",")
    nR = Range("a1").End(xlDown).Row ''最后一列所在的行
    cR = 1
    For i = 0 To UBound(ww)
        iStart = 0
        iEnd = 0
        For j = 1 To nR
            If LCase$(Left$(Cells(j, 1), 2)) = ww(i) Then
                If iStart = 0 Then iStart = j
                iEnd = j
            End If
        Next
        ''复制数据块
        Range("a" & iStart & ":e" & iEnd).Copy Range("h" & cR)
        cR = cR + iEnd - iStart + 1
    Next
End Sub


......
kuhoo23 2014-12-15
  • 打赏
  • 举报
回复
引用 3 楼 Topc008 的回复:
用for...next简单循环或高级筛选都可以的
我是用for。。next语句加IF语句,但是不能达到这个效果,您能否给个例子代码。谢谢
一如既往哈 2014-12-15
  • 打赏
  • 举报
回复
用for...next简单循环或高级筛选都可以的
kuhoo23 2014-12-15
  • 打赏
  • 举报
回复
引用 1 楼 Topc008 的回复:
先将第一列"P-"开头的提出......后面又来一个"P-"......难道一次只提取一个记录?
先将"P-"开头的数据提出,提取完成后,再提取“F-"开头的。。。
一如既往哈 2014-12-15
  • 打赏
  • 举报
回复
先将第一列"P-"开头的提出......后面又来一个"P-"......难道一次只提取一个记录?

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧