找回密码
 注册
快捷导航
查看: 2216|回复: 5

【求助】VB或VBA高手

[复制链接] |自动提醒
阅读字号:

8200

回帖

0

积分

3582

资产值

入门会员 Rank: 1

注册时间
2003-12-17
发表于 2011-10-13 10:11:13| 字数 376| - 日本 | 显示全部楼层 |阅读模式
貌似问题出在 mi上

如果k不等于二的话行交换,写出了个死循环,怎么改


    Sub mysort()
        Dim count As Long
        Dim c, k
        Dim g As Long, h As Long, t As Long
        Dim w()
        Dim z As Long, tt As Long
        Dim i As Long, j As Long
        Public mi As Long

      
    mi = Selection.Rows.count
    For i = 3 To mi - 1
            k = i
            Do While k <> 2 'exchange rows positions
                If Cells(k, ni).Value < Cells(k - 1, ni) Then
                    For j = 1 To ni
                        c(j) = Cells(k, j)
                    Next j
                    For j = 1 To ni
                        Cells(k, j) = Cells(k - 1, j)
                    Next j
                    For j = 1 To ni
                        Cells(k - 1, j) = c(k, j)
                    Next j
                    k = k - 1
                    End If
大连 横滨 东京,我在哪里,我家就在哪里
IPhone 5, Nexus 7 2013, Canon 60D
X230 I5 8G BT

7436

回帖

111

积分

26万

资产值

至尊会员I Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2009-12-10
发表于 2011-10-13 11:05:29| 字数 160| - 中国–香港 亚太环通(Pacnet)有限公司 | 显示全部楼层
请将这个子程序帖全:

Sub mysort()

   ...


End Sub

QUOTE:
Posted by 陈酿 on 2011-10-13 10:11
貌似问题出在 mi上

如果k不等于二的话行交换,写出了个死循环,怎么改


    Sub mysort()
        Dim count As Long
        Dim c, k
        Dim g As Long, h As Long, t As Long
        Dim w ...
回复 支持 反对

使用道具 举报

7436

回帖

111

积分

26万

资产值

至尊会员I Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2009-12-10
发表于 2011-10-13 11:48:50| 字数 165| - 中国–香港 亚太环通(Pacnet)有限公司 | 显示全部楼层
for 为正循环 (负循环例如 for i = 3 to mi - 1 step -1), 所以 i >= 3 (或循环不执行,如果mi < 4的话)
由于 k = i, 所以 你这里的 k 不可能有 < 3的值出现, 所以 k <> 2 永远成立,是个死循环


For i = 3 To mi - 1
            k = i
            Do While k <> 2 'exchange rows positions
回复 支持 反对

使用道具 举报

1万

回帖

114

积分

1万

资产值

至尊会员I Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2008-6-17
发表于 2011-10-13 12:41:00| 字数 23| - 中国–河南–郑州 联通 | 显示全部楼层
虽然我一直想学

但是貌似智商不够的样子


学不会。。
回复 支持 反对

使用道具 举报

7436

回帖

111

积分

26万

资产值

至尊会员I Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2009-12-10
发表于 2011-10-13 12:41:00| 字数 45| - 中国–香港 亚太环通(Pacnet)有限公司 | 显示全部楼层
If Cells(k, ni).Value < Cells(k - 1, ni) Then
  k = k -1
回复 支持 反对

使用道具 举报

1万

回帖

196

积分

3万

资产值

至尊会员II Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2006-8-11
银牌荣誉勋章(注册10年以上会员)铜牌荣誉勋章(注册8年以上会员)
发表于 2011-10-13 13:11:53| 字数 7| - 中国–广东–珠海 联通 | 显示全部楼层
唉,看不懂~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.5 © 2001-2023 Comsenz Inc

GMT+8, 2025-1-19 16:18 , Processed in 0.107173 second(s), 35 queries , Gzip On, OPcache On.

手机版|小黑屋|安卓客户端|iOS客户端|Archiver|备用网址1|备用网址2|在线留言|专门网

返回顶部