| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 729 人关注过本帖
标题:新手邮购了《Visual Basic从入门到精通》,仍然解决不了一个小问题
取消只看楼主 加入收藏
O涅槃O
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-12-20
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
新手邮购了《Visual Basic从入门到精通》,仍然解决不了一个小问题

各位高人,我习惯了用Excel的宏,又买了VB教程,想自学成才;但由于不是科班出身,一个小问题已经困扰7日,不得而解啊,请指点迷津。

我的问题是:我有一段代码,是循环调用的,如下述第一部分; 那么如何把它正确地组织到我的EXCEL的宏(见下述第二部分)里边啊?

第一部分:
——————————————————————————
Sub aaa(i As Long)
    Sheets("Term").Select
    Range("S" & i & ":AB" & i).Select
    Selection.Copy
    Sheets("New Test").Select
    Range("O" & i).Select
    ActiveSheet.Paste
End Sub
    For i = 1 To 163
              aaa i
    Next
————————————————————————————

第二部分:
Sub Macro1()
'
' Macro1 Macro
'
' 快捷键: Ctrl+q
'
    Application.ScreenUpdating = False

' 此处省略一些无关代码
' 我想把前述第一部分加到此处(但总出错,说我“ByRef参数类型不符”或者什么没有定义好?或者说我缺少半个括号...云里雾里啊)

' 下边是接下来的无关的代码
    Range("AG3:AT3").Select
    Selection.Copy
    Sheets("Cnclsn").Select
    Application.ScreenUpdating = True
End Sub

[ 本帖最后由 O涅槃O 于 2012-12-21 08:50 编辑 ]
搜索更多相关主题的帖子: EXCEL Excel 如何 
2012-12-21 08:44
O涅槃O
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-12-20
收藏
得分:0 
回复 2楼 风吹过b
谢谢风吹过大侠的好心相助!
按您的指点,我的全部代码改成了下边的写法。在我运行第二个模块的程序的时候,被指出Call aaa i 这里“缺少:语句结束”。请指教。

在第二个模块里:
——————————————————————————
Sub aaa(i As Long)
    Sheets("Term").Select
    Range("S" & i & ":AB" & i).Select
    Selection.Copy
    Sheets("New Test").Select
    Range("O" & i).Select
    ActiveSheet.Paste
End Sub
————————————————————————————

在第一个模块里:

Sub Macro1()
'
' Macro1 Macro
'
' 快捷键: Ctrl+q
'
    Application.ScreenUpdating = False
    For i = 1 To 163
             Call aaa i
    Next

    Range("AG3:AT3").Select
    Selection.Copy
    Sheets("Cnclsn").Select
    Application.ScreenUpdating = True
End Sub
2012-12-21 12:06
O涅槃O
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-12-20
收藏
得分:0 
谢谢指教。我改正了call的写法,却仍然有下述红字所说的错误:

Sub bbb()
    For i = 1 To 163
              Call aaa(i)  编译错误:ByRef 参数类型不符
    Next
(接下来是复制和粘贴的指令,这里省略了)
End Sub

上述是写在模块2里边的。

我已经预先把aaa写在同一个EXCEL文档的模块1里边了,全文如下:
Sub aaa(i As Long)
    Sheets("Term").Select
    Range("S" & i & ":AB" & i).Select
    Selection.Copy
    Sheets("New Test").Select
    Range("O" & i).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
 End Sub
还请继续指导一下。谢谢。
2012-12-21 20:59
快速回复:新手邮购了《Visual Basic从入门到精通》,仍然解决不了一个小问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018217 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved