我建了一个工程
有两个普通的form,form1和form2
我想把form1里的声明的一个全局数组x(i)
在form2里也能用怎么不行呢我是这样做的
public x() as stringPrivate Sub xxx_DblClick()
    i=1
    redim x(i)
    x(0)= "ssss"
    x(1)= "bbbb"
    form2.Visible = True
End Sub
form2里写的是
Private Sub Command1_Click()
    MsgBox x(0)
    MsgBox x(1)
End Sub
但是结果public x() as string这里就报错误????
提示我说:“常数、固定长度字符串、数组、用户定义类型以及Declare语句不允许作为对象模块Public的成员。”
为什么啊!!???

解决方案 »

  1.   

    数组未定义长度,你可以先定义x(0),然后在form1的form_load中再用redim x(x)重新定义数组的长度,这样应该就可以了吧
      

  2.   

    1,public x() as string 访到bas文件里面
    或者
    2,private x() as string
    *****************************
    Private Sub Command1_Click()
        MsgBox form1.x(0)
        MsgBox form1.x(1)
    End Sub
      

  3.   

    form2里写的是
    Private Sub Command1_Click()
        MsgBox form1.x(0)
        MsgBox form1.x(1)
    End Sub
      

  4.   

    public x(0) as string
    这样不行
    我试了
    ---------------------------------
    private x() as string
    这样不行
    我试了
    ---------------------------------
    放到bas文件里怎么回事?
      

  5.   

    把 public x() as string 放在模塊中
      

  6.   

    小豆,你在数据模块中声明,用用Public!
      

  7.   

    我在form2里史这样写的form2里写的是
    Private Sub Command1_Click()
        MsgBox form1.x(0)
        MsgBox form1.x(1)
    End Sub不行啊
      

  8.   

    放在模块里没问题
    但是因为我不懂模块是干什么的
    所以没有这种方式难道模块就是干这个用的吗?
    为什么我把form1里的函数放到模块里
    Private Function xlsLoad(ExcelPathName)
        Dim objExcel As Excel.Application
        Dim objWorkBook As Excel.Workbook
        Dim objSheet As Excel.Worksheet
        Dim objRange As Excel.Range    '将EXCEL表中的数据导入到网格控件中
        Set objExcel = New Excel.Application
        Set objWorkBook = objExcel.Workbooks.Open(ExcelPathName)
        Set objSheet = objWorkBook.ActiveSheet
        Set objRange = objSheet.UsedRange
        xlsRows = objRange.Rows.Count
        xlsCols = objRange.Columns.Count
        xlsData.Rows = xlsRows + 1
        xlsData.Cols = xlsCols + 1
        For m = 1 To xlsRows
            For n = 1 To xlsCols
                With xlsData
                   .TextMatrix(m, n) = objSheet.Cells(m, n)
                End With
            Next
        Next
        objWorkBook.Close
        Set objRange = Nothing
        Set objSheet = Nothing
        Set objWorkBook = Nothing
        Set objExcel = Nothing
    End Function
    就用不了
    我还得把他改成public的
    然后写对象的时候,还得带上是哪个form的
    真麻烦
    都写在frm里不就得了吗
    唉!还是要谢谢大家!