如何在另一个子程序中读取特定的代码行?

直到

我想知道是否有一种方法可以在另一个sub中运行指定的代码行,比如说在执行Sub_1中的代码之前仅执行Sub_2的行1至行10。

我进行了一些背景研究,并在下面找到了@Andrew建议的代码。

Private Sub Sub_1(sender As System.Object, e As System.EventArgs) Handles Button1.Click

    'Call the Save Sub
    Call Sub_2(sender, e) 
    'Proceed to execute the rest of the this Sub_1

上面的代码当前执行的是执行我所调用的整个子程序,这不是我想要实现的。

我还阅读了有关@Henry建议的使用两个Subs公用的共享例程的信息,但是对我来说,问题在于在Sub_2的各个阶段都需要在共享例程中声明变量,但不能将其用作程序表示未声明它们(在Sub_1中)。

同样,我要实现的是仅从Sub_1中的Sub_2执行几行代码。

我正在使用Visual Basic 2010 Express。

贾斯汀·瑞安(Justin Ryan)

技术上讲,您正在尝试做的事情是可行的(以各种真正的骇人听闻的方式),但是很容易成为代码结构的噩梦。相反,请考虑对构建例程的方式进行更改。

Subs和Function旨在成为独立的代码“岛”,它们可以(通常)执行而无需了解程序的其余部分。您可以将变量传递给它们,然后取回变量,但是它们应该一次又一次地操作。

从您提出的方案中考虑以下理论代码:

Dim variable_1

Private Sub Sub_1()
    Dim variable_2
    Call Sub_2()
End Sub

Private Sub Sub_2()
    'lines 1-10
    'lines 11-20
End Sub

在这里,我们为您提供所需的设置。两个Sub都可以“看到” variable_1,但是Sub_2看不到variable_2这称为范围最后,存在一个问题,Sub_2当从中调用时,只希望在内部执行第1-10行Sub_1

首先要做的是将我们的代码分成逻辑组。根据您的描述,Sub_2单独查看第1-10行是有意义的,因此这自动意味着应将它们分组在一起。第11-20行可能是一个不同的故事,但是由于它们有时是相关的而其他的则无关紧要,因此我们也应将它们分开。

Private Sub Sub_2()
    'lines 1-10
End Sub

Private Sub Sub_3()
    Call Sub_2()
    'lines 11-20
End Sub

所做的更改看起来很简单,但实际上功能非常强大。当我们只想执行第1-10行时,我们调用Sub_2如果要执行第1-20行,则调用Sub_3Sub_3会自动调用Sub_2(第1-10行)先执行,然后执行11-20行。简单。

现在我们只需要弄清楚如何处理变量。您可以通过多种方法来处理这种情况,但是最简单的方法是扩大其范围。如果您需要访问的所有变量都在这些Subs之外声明(一个“升级”),则它们都可以访问它们。例如:

Dim variable_1
Dim variable_2

Private Sub Sub_1()
    Dim variable_3
    'can access 1, 2, 3 but NOT 4, 5
    Call Sub_2()
End Sub

Private Sub Sub_2()
    Dim variable_4
    'can access 1, 2, 4 but NOT 3, 5
End Sub

Private Sub Sub_3()
    Dim variable_5
    'can access 1, 2, 5 but NOT 3, 4
End Sub

这应该可以帮助您入门。一旦掌握了这一点,就可以了解将变量传递到Subs和Function中各种方法(这也提供了一些有关如何将其删除的提示)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在不同形式的另一个子程序中调用子程序。网络

来自分类Dev

在另一个子程序中定义一个子程序

来自分类Dev

如何在return语句之后调用另一个子程序

来自分类Dev

VBA仅允许子程序在另一个子程序运行之后运行

来自分类Dev

VBA for Excel-通过从另一个子程序或函数返回变量来更新一个子程序中的变量

来自分类Dev

VBA for Excel-通过从另一个子程序或函数返回变量来更新一个子程序中的变量

来自分类Dev

VBA for Excel-通过从另一个子程序或函数返回变量来更新一个子程序中的变量

来自分类Dev

存储工作表名称以在另一个子程序中使用

来自分类Dev

如何使用C ++在另一个程序中读取源代码的输出

来自分类Dev

如何在另一个子项目的 gradle 任务中从一个子项目调用代码?

来自分类Dev

VBA EXCEL:如何在另一个子例程中调用一个子例程?

来自分类Dev

从特定行读取文件,直到laravel中的另一个特定行

来自分类Dev

如何在SQL Server中将一个表中的特定行加到另一个表

来自分类Dev

如何在.htaccess中从一个子域重定向到另一个子域?

来自分类Dev

VBA - 如果将某些数字传递给另一个子程序,则会出现溢出错误

来自分类Dev

如何使用PHP从另一个PHP文件读取html文件中的特定元素

来自分类Dev

如何从另一个班级中读取列表

来自分类Dev

Odoo-如何在另一个模块中读取/获取字段的值

来自分类Dev

如何从erlang代码中启动另一个程序

来自分类Dev

如何在Android应用程序中执行另一个程序(tcpdump)?

来自分类Dev

如何在我的代码中自由移动另一个 div 中的 div 元素?

来自分类Dev

如何读取名称在另一个字段中的行字段的值

来自分类Dev

如何在DB2中将日期列表与另一个子查询联接

来自分类Dev

写入另一个程序的stdin /从c中另一个程序的stdout读取

来自分类Dev

如何替换包含另一个子字符串的行中的子字符串

来自分类Dev

如何在SAS Enterprise Guide中从另一个程序调用一个宏程序?

来自分类Dev

如何在另一个 ember 应用程序中嵌入一个 ember 应用程序?

来自分类Dev

如何使用另一个子网访问Web应用程序?

来自分类常见问题

如何在Roslyn动态编译的代码中引用另一个DLL

Related 相关文章

  1. 1

    如何在不同形式的另一个子程序中调用子程序。网络

  2. 2

    在另一个子程序中定义一个子程序

  3. 3

    如何在return语句之后调用另一个子程序

  4. 4

    VBA仅允许子程序在另一个子程序运行之后运行

  5. 5

    VBA for Excel-通过从另一个子程序或函数返回变量来更新一个子程序中的变量

  6. 6

    VBA for Excel-通过从另一个子程序或函数返回变量来更新一个子程序中的变量

  7. 7

    VBA for Excel-通过从另一个子程序或函数返回变量来更新一个子程序中的变量

  8. 8

    存储工作表名称以在另一个子程序中使用

  9. 9

    如何使用C ++在另一个程序中读取源代码的输出

  10. 10

    如何在另一个子项目的 gradle 任务中从一个子项目调用代码?

  11. 11

    VBA EXCEL:如何在另一个子例程中调用一个子例程?

  12. 12

    从特定行读取文件,直到laravel中的另一个特定行

  13. 13

    如何在SQL Server中将一个表中的特定行加到另一个表

  14. 14

    如何在.htaccess中从一个子域重定向到另一个子域?

  15. 15

    VBA - 如果将某些数字传递给另一个子程序,则会出现溢出错误

  16. 16

    如何使用PHP从另一个PHP文件读取html文件中的特定元素

  17. 17

    如何从另一个班级中读取列表

  18. 18

    Odoo-如何在另一个模块中读取/获取字段的值

  19. 19

    如何从erlang代码中启动另一个程序

  20. 20

    如何在Android应用程序中执行另一个程序(tcpdump)?

  21. 21

    如何在我的代码中自由移动另一个 div 中的 div 元素?

  22. 22

    如何读取名称在另一个字段中的行字段的值

  23. 23

    如何在DB2中将日期列表与另一个子查询联接

  24. 24

    写入另一个程序的stdin /从c中另一个程序的stdout读取

  25. 25

    如何替换包含另一个子字符串的行中的子字符串

  26. 26

    如何在SAS Enterprise Guide中从另一个程序调用一个宏程序?

  27. 27

    如何在另一个 ember 应用程序中嵌入一个 ember 应用程序?

  28. 28

    如何使用另一个子网访问Web应用程序?

  29. 29

    如何在Roslyn动态编译的代码中引用另一个DLL

热门标签

归档