| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 857 人关注过本帖
标题:求大神指点,如果写代码,让这些公式显示>=50,<=1,且不重复
只看楼主 加入收藏
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4943
专家分:30067
注 册:2008-10-15
收藏
得分:0 
程序代码:
Option Explicit

Dim n(1 To 6) As Long

Dim a(1 To 8) As Long

Sub Init_a()

a(1) = 1
a(2) = 3
a(3) = 5
a(4) = 8
a(5) = 16
a(6) = 24
a(7) = 32
a(8) = 40

End Sub


Private Sub Command1_Click()
'n 的文本框是:text1(?)
Dim i As Long
Dim j As Long

Dim b As Long
Dim bc(1 To 96) As Long
Dim bw As Long, bi As Long

For i = 0 To 5
    If IsNumeric(Text1(i).Text) Then
        n(i + 1) = Val(Text1(i).Text)
    Else
        MsgBox "" & i + 1 & " 个数输入不正确", vbCritical, "错误"
        Exit Sub
    End If
Next i

For i = 1 To 6
    For j = 1 To 8
        b = n(i) + a(j)                     '加法
        If b <= 50 Then                     '符合条件
            For bi = 1 To bw                '搜索历史答案
                If bc(bi) = b Then          '找到
                    Exit Sub                '退出循环
                End If
            Next bi
            If bi = bw + 1 Then             '如果没找到
                bw = bw + 1                 '计数
                bc(bw) = b                  '保存历史
                Text2.Text = Text2.Text & vbCrLf & n(i) & "+" & a(j) & "=" & b  '添加结果
            End If
        End If
        
        b = n(i) - a(j)                     '减法
        If b >= 0 Then                      '符合条件
            For bi = 1 To bw
                If bc(bi) = b Then
                    Exit Sub
                End If
            Next bi
            If bi = bw + 1 Then
                bw = bw + 1
                bc(bw) = b
                Text2.Text = Text2.Text & vbCrLf & n(i) & "-" & a(j) & "=" & b
            End If
        End If
    Next j
Next i
End Sub
Private Sub Form_Load()
    Call Init_a
End Sub


text2 是多行,带竖滚动条
text1 是控件数组,下标从 0 到 5

授人于鱼,不如授人于渔
早已停用QQ了
2015-07-07 21:35
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
回复 7楼 wenchen1987
仅仅就是文本框输入数字而已,还不能自己动手?

大开眼界
2015-07-07 21:54
wenchen1987
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2015-7-1
收藏
得分:0 
回复 12楼 lianyicq
图片附件: 游客没有浏览图片的权限,请 登录注册

是这样的,我想在TEXT1.TEXT到TEXT6.TEXT文本框里,分别输入我想要的数字,
但是要赋值,让N1=VAL(TEXT1.TEXT),N2=VAL(TEXT2.TEXT),N3=VAL(TEXT3.TEXT),N4=VAL(TEXT4.TEXT),N5=VAL(TEXT5.TEXT),N6=VAL(TEXT6.TEXT)
但是,我单击"按钮"之后,然后开始计算我上面的那些公式,
然后,显示的结果是在TEXT7.TEXT里显示,
--------------------------------------------
还有,大神你刚才给我的代码为什么老出错?
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
2015-07-07 22:36
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4943
专家分:30067
注 册:2008-10-15
收藏
得分:0 
你看了我代码下面的说明吗?
我用的是控件数组

授人于鱼,不如授人于渔
早已停用QQ了
2015-07-07 22:40
wenchen1987
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2015-7-1
收藏
得分:0 
回复 13楼 wenchen1987
看了,不过我是菜鸟,实在不懂呀
2015-07-07 22:47
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4943
专家分:30067
注 册:2008-10-15
收藏
得分:0 
在窗体放个 textbox ,自动名字为 text1
然后复制这个 text1,然后再粘贴,会提示是否创建控件数组,点是,然后继续粘贴,直到粘出6个来为止。

再手动放一个 textbox ,自动名字为 text2
MultiLine 设为真,
ScrollBars 设为 VbVertical

然后放个 CommandButton  ,自动名字为 Command1

授人于鱼,不如授人于渔
早已停用QQ了
2015-07-07 23:56
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
回复 13楼 wenchen1987
风版在16楼详细写了建文本框组数组的方法,再给5楼代码数组n赋值。
本来希望你对写代码的过程感兴趣,没有实现。

大开眼界
2015-07-08 09:26
wenchen1987
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2015-7-1
收藏
得分:0 
回复 17楼 lianyicq
谢谢大神,我的问题解决了,
2015-07-08 23:22
wenchen1987
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2015-7-1
收藏
得分:0 
回复 17楼 lianyicq
只是大神能告诉我,怎么赋值不
图片附件: 游客没有浏览图片的权限,请 登录注册
2015-07-08 23:24
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
回复 19楼 wenchen1987
零基础的情况在短时间内就做出来了,看来VB6真的很容易。
在窗体内建Text1(0)至Text1(5)控件数组后,调整2个地方。
1、如你所标记的,修改Init_n()
程序代码:
Sub Init_n()
  Dim i As Integer
  For i = 0 To 5
    n(i + 1) = Val(Text1(i).Text)
  Next
End Sub
2、将Form_Load()中的Init_n语句移至Command1_Click()中
程序代码:
Private Sub Command1_Click()
  Dim i As Integer
  Dim temp As String
  Init_n
  Cal
  For i = 0 To UBound(Output)
    temp = temp & Output(i) & " "
  Next
  Debug.Print temp
End Sub

Private Sub Form_Load()
  Init_a
End Sub
没有考虑文本框内输入数据不符合条件的情况,自己把握。也可以借鉴风版的方法。


大开眼界
2015-07-09 08:56
快速回复:求大神指点,如果写代码,让这些公式显示>=50,<=1,且不重复
数据加载中...
 
   



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

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