Public Sub Form_load()
Public ysf As Integer
Public sin1 As String
Public sin2 As String
Public iin1 As Integer
Public iin2 As String
Public sout As String
Public iout As Integer
End SubPrivate Sub Cjia_Click()
ysf = 1
End SubPrivate Sub Cjian_Click()
ysf = 0
End SubPrivate Sub Command1_Click()
sin1 = txtin1.Text
sin2 = txtin2.Text
iin1 = CInt(sin1)
iin2 = CInt(sin2)
If ysf = 1 Then
iout = iin1 + iin2
sout = CStr(iout)
txtout = sout
ElseIf ydf = 0 Then
iout = iin1 - iin2
sout = CStr(iout)
txtout = sout
End If
End Sub为什么只能进行 ydf = 0 下面的事件

解决方案 »

  1.   

    整型变量没附值,默认就是0
    If ysf = 1 Then
    iout = iin1 + iin2
    sout = CStr(iout)
    txtout = sout
    ElseIf ydf = 0 Then
    iout = iin1 - iin2
    sout = CStr(iout)
    txtout = sout
    End If
    ysf=0当然只执行ydf = 0 下面的事件
      

  2.   


    Private Sub Cjia_Click()
    ysf = 1
    End SubPrivate Sub Cjian_Click()
    ysf = 0
    End Sub
    回二楼,上面那样不是赋值了??
    还是因为,那样赋值后,再按Command1就又重新变为零??
    那么到底要怎样才能实现???
      

  3.   

    Public ysf As Integer
    Public sin1 As String
    Public sin2 As String
    Public iin1 As Integer
    Public iin2 As String
    Public sout As String
    Public iout As IntegerPublic Sub Form_load()End Sub另外,为何都要public类型?
      

  4.   

    回king06
    难道那样会有有问题吗??
      

  5.   

    你定义的变量在过程级,别的过程无法用,你肯定没有声明 Option Explicit 
    这样,过程里面的都是自动取默认值,不管你执行Cjia_Click还是Cjian_Click
    Command1_Click里面的ysf开始都是0不用多说,定义为模块级;如果别的窗体没有用到这些个变量,不要定义为public类型.
      

  6.   

    Public ysf As Integer
    Public sin1 As String
    Public sin2 As String
    Public iin1 As Integer
    Public iin2 As String
    Public sout As String
    Public iout As IntegerPublic Sub Form_load()End Sub
      

  7.   

    嘿嘿...
    我知道     要把
    Public ysf As Integer
    Public sin1 As String
    Public sin2 As String
    Public iin1 As Integer
    Public iin2 As String
    Public sout As String
    Public iout As Integer写到
    Public Sub Form_load()End Sub
    过程的外面.......
    嘿嘿 ..
      

  8.   

    话说  
    Public Sub Form_load()End Sub
    根本就是没必要存在的   - - 
      

  9.   

    回King06
    Option Explicit
    强制申明也无效 
      

  10.   

    Public的变量不能声明在过程以内!!!
    Public 语句      在模块级别中使用,用于声明公用变量和分配存储空间。语法Public [WithEvents] varname[([subscripts])] [As [New] type] [,[WithEvents] varname[([subscripts])] [As [New] type]] . . .Public 语句的语法包含下面部分:部分 描述 
    WithEvents 可选的。关键字,说明 varname 是用来响应由 ActiveX 对象触发的事件的对象变量。只有在类模块中才是合法的。使用 WithEvents,可以定义任意个所需的单个变量,但不能用 WithEvents 创建数组。New 和 WithEvents 不能一起使用。 
    varname 必需的。变量的名称;遵循标准的变量命名约定。 
    subscripts 可选的。数组变量的维数;最多可以定义 60 维的多维数组。subscripts 参数使用下面的语法: 
      [lower To] upper [,[lower To] upper] . . . 
      如果不显式指定 lower,则数组的下界由 Option Base 语句控制。如果没有 Option Base 语句则下界为 0。 
    New 可选的。用它可以隐式地创建对象的关键字。如果使用 New 声明对象变量,则在第一次引用该变量时创建该对象的新实例,因此不必使用 Set 语句来对该对象引用赋值。New 关键字不能用来声明任何内部数据类型的变量以及从属对象的实例,也不能与 WithEvents 一起使用。 
    type 可选的。变量的数据类型;可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(对变长的字符串)、String * length(对定长的字符串)、Object或 Variant,用户定义类型,或对象类型。所声明的每个变量都要有一个单独的 As type 子句。 
    说明Public 语句声明的变量在所有应用程序的所有没有使用 Option Private Module 的模块的任何过程中都是可用的;若该模块使用了 Option Private Module,则该变量只是在其所属工程中是公用的。小心 不能在类模块中使用 Public 语句来声明一个定长的字符串变量。使用 Public 语句可以声明变量的数据类型。例如,下面的语句声明了一个 Integer 类型的变量。Public NumberOfEmployees As Integer也可以使用 Public 语句来声明变量的对象类型。下面的语句为工作表的新实例声明了一个变量。Public X As New Worksheet如果在定义对象变量时没有使用 New 关键字,则在使用该变量之前,必须使用 Set 语句将一个已有的对象赋给这个引用对象的变量。在被赋值之前,所声明的这个对象变量有一个特定值 Nothing,这个值表示该变量没有指向任何对象的实例。可以用带空圆括号的 Public 语句来声明动态数组。在声明了动态数组之后,可以在过程内用 ReDim 语句来定义该数组的维数和元素。如果试图在 Private、Public 或 Dim 语句中重定义一个已被显式定义了大小的数组的维数,就会发生错误。如果不指定数据类型或对象类型,且在模块中没有使用 Deftype 语句,则按缺省情况该变量为 Variant 类型。当初始化变量时,数值变量被初始化为 0,变长的字符串被初始化为一个零长度的字符串 (""),而定长的字符串则用 0 填充。Variant 变量被初始化为 Empty。用户自定义类型的变量的每个元素都作为各自独立的变量进行初始化。