vb中如果给一个数值怎么样让它在一组数据中找到一个最接近大于它的数和一个最接近小于它的数值

作者&投稿:邬彪 (若有异议请与网页底部的电邮联系)
各位好,小弟请教个问题,vb编程 从一组数中挑出一部分数,使它们的和最接近确定的某个值~

控件:
image,picture,timer代码:Dim x As IntegerDim y As IntegerPrivate Sub Form_Load()x = 100y = 100Timer1.Interval = 100End SubPrivate Sub Timer1_Timer()If img.Top >= pic.Height - img.Height Theny = -100End IfIf img.Top = pic.Width - img.Width Thenx = -100End IfIf img.Left <= 0 Thenx = 100End Ifimg.Top = img.Top + yimg.Left = img.Left + xEnd Sub以上代码实现的是图片框中的一个小球做的规律的运动,当小球碰到图片框边缘时便反弹继续运动

比如你要求A2到A30这些表格中的的数据,你可以先用筛选,把大于某个值的数筛选出来,然后再用min求筛选出来的最小值。

'在窗体上画一个名称为Command1的按钮就可以运行了
    
 Private Sub Command1_Click()
    Dim i As Integer, myNumber As Integer, myResult As Long
    Dim intMyArray(0 To 4) As Integer
   
    '-----------------------------
    '这部分是测试数据,根据需要自己设置
    intMyArray(0) = 20
    intMyArray(1) = 25
    intMyArray(2) = 10
    intMyArray(3) = 15
    intMyArray(4) = 5
    myNumber = 5
    '-----------------------------
    '首先对数组数据进行排序,防止用来判断的数组不标准产生误差
    If MySort(intMyArray()) Then
         
        '对要进行处理的数值进行校验,排除非法数据
        If myNumber > intMyArray(UBound(intMyArray)) Or myNumber < intMyArray(0) Then
            MsgBox "输入值超出可处理范围,请检查", vbExclamation, "提示"
            Exit Sub
        End If
    
        If JudgeNumber(intMyArray, myNumber, myResult) Then
            Print myNumber & "的处理结果为:" & myResult
        Else
            MsgBox "处理失败失败", vbExclamation, "提示"
        End If
    Else
        MsgBox "排序失败", vbExclamation, "提示"
    End If
End Sub
 
Private Function MySort(intArray() As Integer) As Boolean
    Dim i      As Integer, j As Integer
    Dim intTmp As Integer
    On Error GoTo ErrLab
    For i = 0 To UBound(intArray) - 1
        For j = 0 To UBound(intArray) - i - 1
            If intArray(j) > intArray(j + 1) Then
                intTmp = intArray(j)
                intArray(j) = intArray(j + 1)
                intArray(j + 1) = intTmp
            End If
        Next
    Next
    MySort = True
ErrLab:
    If Err.Number <> 0 Then
        MySort = False
    End If
End Function
 
'lngResult为计算结果
Private Function JudgeNumber(intArray() As Integer, ByVal intInput As Integer, ByRef lngResult As Long) As Boolean
    Dim i As Integer
    
    
    On Error GoTo ErrLab
    
    For i = 0 To UBound(intArray)
        If intInput <= intArray(i) Then
            If intInput = intArray(i) Then
                lngResult = intInput
            Else
                lngResult = intArray(i - 1) * intArray(i)
            End If
            Exit For
        End If
    Next
    
    JudgeNumber = True
    Exit Function
ErrLab:
    JudgeNumber = False
End Function


这要分两个步骤来处理,第一步是找数组中有没有相同的数,找到了就确认并退出,没找到进入下一步,把这个数加入数组中,并进行数组排序,排序结束后取得上下两个相邻的数进行相乘,整个过程就这样.

Option Base 1
Private Sub Command1_Click()
Dim x(), i%, a%, b%
x = Array(5, 10, 15, 20, 25)
a = InputBox("input a number:")
For i = 1 To UBound(x)
If a < x(i) Then
b = a * x(i)
ElseIf a = x(i) Then
b = a
End If
Next i
MsgBox b

End Sub


vb中怎么让一个变量数值变化,另一个变量输出的整数位数也变化?_百度...
Private Sub Command1_Click()Dim a, b, c, d, e a = Val(Combo1) '单个数值最小位数 b = Val(Combo2) '单个数值最大位数 If a = 0 Or b = 0 Then Exit Sub If a > b Then MsgBox "请将a项值小于b项值!"End If d = Val(String(b, "9"))c = Val(IIf(a = 1, 0...

如何在EXCEL中设置一个函数,如果在B列出现指定数值,就在E列中出现要求...
=IF(B2="16-100",46,"")如果只要B列任意单元格有16-100,E2就是46,那么公式为 =IF(COUNTIF(B:B,"16-100"),46,"")

在excel里,A单元格输入一个数值,在B单元格再输入一个数值,如果大于A数值...
在B1单元格里,格式,条件格式,公式,后面输入=>$A$1*30%,下面选择字体格式,红色,就行

在Excel中,如何做到当一个数值大于等于或小于某个数值时,返回不同的...
、首先在excel表格中输入一组数据,需要根据数据通过函数公式返回不同数值。2、点击“fx”插入“IF”函数并根据下图参数输入函数参数,转换成公式为:=IF(A2>=80,1,IF(A2<60,3,2))。3、点击确定即可得到计算结果,根据显示的数字“56”可以返回数字“3”。4、点击下拉公式即可批量生成对应数据的返回...

Excel中如果A列和B列都为0,那么C列就为0,如果A列和B列有一个为1,那么...
函数解释:如果A1是0且B1是0的时候,单元格结果为0,否则为1(也就是不管A1是1,2,3,4,5...各种,最后C都会是1)方法2:上述功能其实和“或”这个非常相似,也就是利用逻辑或的判断,输出是个布尔值,可以认为true是1,false是0。函数:=OR(A1,B1),转换成数值也可以用上述的if:=IF(OR(A...

如果把一列数字除以一个数值,该怎么做呢
一列数值除以同一个数,这里给大家介绍两种不同的方法 这里有一列数字,我们需要将这列数字除以3并将结果填在B列 在B2单元格中输入公式“=A2\/3"回车确认并向下填充公式 操作方法2 这里介绍第二种方案,复制A列数值到C列中 在任意空白单元格中输入4,并复制该单元格数值 选择C列所有数值,右键点击...

...B),如果在B列中找到A列的数值,则返回一个数值到C列,若找不到则返 ...
在sheet1的c2中写入公式:=if(isna(vlookup(a2,sheet2!b:c,2,),0,vlookup(a2,sheet2!b:c,2,))下拉复制公式即可。

...B列中的数值等于A列中的数值乘以一个固定的数?
两种方法 第一,B1输入 =A1*2 然后下拉复制公式到B列其他单元格 第二,在其他任意一个空白单元格输入2,复制,再选中A列所有数据,假设A1:A7,选择性粘贴——数值,并勾选“乘”,确定即可

请教大家一个问题,excel中,如果我想用在B列中显示A列文字所对应的数值...
使用 vlookup 函数 直接百度VLOOKUP 里面有介绍怎么设置的 意思是 只要在A列中看到“A套餐”,B列就会显示“100”只要在A列中看到“B套餐”,B列就会显示“200”

excel问题:当A1、B1同时为数值1,或任一个为数值1时计数为1,怎样做?
=IF(COUNTIF(A1:B1,1),1,"")或 =N(OR(A1=1,B1=1))

麻阳苗族自治县15155299056: vb中如果给一个数值怎么样让它在一组数据中找到一个最接近大于它的数和一个最接近小于它的数值现在有一组数5.10.15.20.25.如果有一个数a,当a=13时,... -
浑矿孚悦:[答案] '在窗体上画一个名称为Command1的按钮就可以运行了 Private Sub Command1_Click() Dim i As Integer, myNumber As&nb...

麻阳苗族自治县15155299056: vb中如果给一个数值怎么样让它在一组数据中找到一个最接近大于它的数和一个最接近小于它的数值 -
浑矿孚悦: '在窗体上画一个名称为Command1的按钮就可以运行了 Private Sub Command1_Click() Dim i As Integer, myNumber As Integer, myResult As Long Dim intMyArray(0 To 4) As Integer '----------------------------- '这部分是测试数据,根据需要自己设置 ...

麻阳苗族自治县15155299056: vb中怎么样输入的值保存在一个变量中? -
浑矿孚悦: 从inputbox得到输入内容 dim a as string a=inputbox("请输入任意","输入") print a

麻阳苗族自治县15155299056: 新手学VB 我想问下 当我在Text中输入一个数字 怎样让它转到一个定义变量中. -
浑矿孚悦: 在Text控件 Text1 的消息响应函数Text1_Change()里写下1)a =Text12)a =Text1.text3)a= int(Text1.text)4)a= CInt(Text1.text)5)a= CLng(Text1.text)6)a= CSng(Text1.text)7)a= CDbl(Text1.text) 任选一个就可以了

麻阳苗族自治县15155299056: vb中用for next语句怎么将一个数组在一行输出 -
浑矿孚悦: VB中在For Next循环中,可以在使用Print方法时用分号";"实现将一个数组在一行输出.在单行上显示不同的项 被显示或被打印的项,可包括属性值、常数和变量(字符串或数字).“在窗体或图片框上显示文本”一节中讨论过的 Print 方法...

麻阳苗族自治县15155299056: vb中,text中输出数字的时候,怎么让每个数字占一排啊
浑矿孚悦: 现将text的multiline属性置为true, text1= text1 & vbcrlf & "123" text1= text1 & vbcrlf & "456"

麻阳苗族自治县15155299056: 在VB中怎么把2个数赋予在一个值里
浑矿孚悦: 定义三个变量 dim a as string,b as string,c as string a=b+c b和c里面的值就都到a里面来了

麻阳苗族自治县15155299056: VB怎么全局赋值给一个变量? -
浑矿孚悦: 在控件外给变量赋值const a=100 '赋值一个常数100,常数a不可改变a=100 '赋值一个变量为100,变量a可以改变

麻阳苗族自治县15155299056: vb.net中怎么让即时窗口的数字在一行显示,我输出的都是同一列. -
浑矿孚悦: 你数字输出方法不对 你要把1 xxx.WriteLine() 换成1 xxx.Write() WriteLine()方法会在每次输出后自动添加换行符,所以看起来就是一列

麻阳苗族自治县15155299056: vb如何让数字只要有小数位就进一变为整数
浑矿孚悦: Option Explicit Private Sub Form_Activate() Print fc(100) Print fc(0.1) Print fc(10.1) Print fc(100.0001) End Sub Function fc(n) fc = IIf(InStr(CStr(n), ".") > 0, Int(n) + 1, n) End Function

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网