| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1528 人关注过本帖
标题:新手上路,各位高手帮忙看看这个代码,提示缺少数组。谢谢指教
只看楼主 加入收藏
Jamin_Wong
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2017-1-19
结帖率:50%
收藏
 问题点数:0 回复次数:3 
新手上路,各位高手帮忙看看这个代码,提示缺少数组。谢谢指教
Private Sub Form_Load()
    Dim a() As String
    Dim i As String
        i = 0
'定义名单跳转的时间为10s
     Timer1.Interval = 10
     Timer1.Enabled = False
     Command1.Caption = "开始"
        Label1.Alignment = 2           '字体居中
        Label1.Font = "微软雅黑"       '字体为 微软雅黑
        Label1.FontSize = 15           '字体的大小
        
 '读取名单,注意名单必须放在D盘的txt内
 
       Open "D:\1.txt" For Input As #1
              Do Until EOF(1)
        i = i + 1
        ReDim Preserve a(1 To i) As String
        Line Input #1, a(i)                  '按行读取名单,所有的名单必须一行一个
        Loop
        
               
   
End Sub

Private Sub Timer1_Timer()

    Dim a As String
   
    Dim j As Integer
    Randomize
   
    'i 为名单的人数,Rnd为0-1之间数,不包括0,1
   
    j = Int(i * Rnd + 1)
    Label1.Caption = a(j)
     
   
End Sub
搜索更多相关主题的帖子: 新手上路 微软雅黑 False 
2017-06-02 09:45
HVB6
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:15
帖 子:320
专家分:561
注 册:2013-10-30
收藏
得分:0 
回复 楼主 Jamin_Wong
Private Sub Form_Load()
    Dim a() As String
    Dim i As String
        i = 0
'定义名单跳转的时间为10s
     Timer1.Interval = 10
     Timer1.Enabled = False
     Command1.Caption = "开始"
        Label1.Alignment = 2           '字体居中
        Label1.Font = "微软雅黑"       '字体为 微软雅黑
        Label1.FontSize = 15           '字体的大小
        
 '读取名单,注意名单必须放在D盘的txt内
 
       Open "D:\1.txt" For Input As #1
              Do Until EOF(1)
        i = i + 1
        ReDim Preserve a(1 To i) As String
        Line Input #1, a(i)                  '按行读取名单,所有的名单必须一行一个
        Loop
        
               
   
End Sub

Private Sub Timer1_Timer()

   ' Dim a As String  注释此语句试试
   
    Dim j As Integer
    Randomize
   
    'i 为名单的人数,Rnd为0-1之间数,不包括0,1
   
    j = Int(i * Rnd + 1)
    Label1.Caption = a(j)
     
   
End Sub
2017-06-02 11:32
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:938
专家分:5244
注 册:2015-8-10
收藏
得分:0 
楼上的也不对吧

程序代码:
Private Sub Form_Load()
    Dim a() As String
     ……
End Sub

这里a()是一个数组,并且是局部数组,只能在Form_Load内部使用。
Private Sub Timer1_Timer()

 Dim a As String

 ……
End sub

这里a是一个字符变量,也是局部变量,只能在Timer1_Timer内部使用。
这两个a分别是不同的变量,也只能在各自的过程中使用。如果a()既要在Form_Load中用,又要在Timer1_Timer中用,需要定义成这个窗口的公用变量
程序代码:
Dim a() As String
Private Sub Form_Load()
    Dim i As String
        i = 0
'定义名单跳转的时间为10s
     Timer1.Interval = 10
     Timer1.Enabled = False
     Command1.Caption = "开始"
        Label1.Alignment = 2           '字体居中
        Label1.Font = "微软雅黑"       '字体为 微软雅黑
        Label1.FontSize = 15           '字体的大小
        

 '读取名单,注意名单必须放在D盘的txt内
 
       Open "D:\1.txt" For Input As #1
              Do Until EOF(1)
        i = i + 1
        ReDim Preserve a(1 To i) As String
        Line Input #1, a(i)                  '按行读取名单,所有的名单必须一行一个
        Loop
        
               
    
End Sub

Private Sub Timer1_Timer()
    Dim j As Integer
    Randomize
    
    'i 为名单的人数,Rnd为0-1之间数,不包括0,1
    
    j = Int(i * Rnd + 1)
    Label1.Caption = a(j)
     
    
End Sub

2017-06-02 15:22
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:0 
Open "D:\1.txt" For Input As #1
              Do Until EOF(1)
        i = i + 1
        ReDim Preserve a(1 To i) As String
        Line Input #1, a(i)                  '按行读取名单,所有的名单必须一行一个
        Loop
'-------------------------------------------------------------------------
        ReDim Preserve a(1 To i) As String    '我认为问题出在这里
定义动态数组不能在循环中定义吧,另外,在通用部分已经定义了Dim a() As String这个数组的数据类型,不能使用ReDim语句再次定义数据类型吧

请不要选我!!!
2017-06-05 19:51
快速回复:新手上路,各位高手帮忙看看这个代码,提示缺少数组。谢谢指教
数据加载中...
 
   



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

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