精华内容
下载资源
问答
  • 比如读取第一行c 后面的5个数据,在Visual Build Pro 的read file使用正则表达式,如下图: 将取出来的5个数据,再一个一个取出来,需要自己二次开发,写vb脚本,脚本如下: Sub vbld_StepDone() If Step....

    这是待读入数据,怎么把下图的数据一个一个取出来,数据和数据之间都有一个tab符号,数据的位数是随机变化的:

    在这里插入图片描述

    比如读取第一行c 后面的5个数据,在Visual Build Pro 中的read file中使用正则表达式,如下图:

    在这里插入图片描述

    将取出来的5个数据,再一个一个取出来,需要自己二次开发,写vb脚本,脚本如下:

    在这里插入图片描述

    Sub vbld_StepDone()

    If Step.BuildStatus = vbldStepStatSucceeded Then
    	' parse output for Revision number
    	out = vbld_AllMacros()("LASTSTEP_OUTPUT").Value
    
    	pos = InStr(out, "")+32
    	
     Do 
     	pos = pos +1
     	n1 =n1+1
     Loop While(StrComp(Mid(out,pos,1),"	"))
        pos_c1 =  Mid(out, pos-n1, n1)
    	vbld_TempMacros.Add "c1",pos_c1
    	
     Do 
     	pos = pos +1
     	n2 =n2+1
     Loop While(StrComp(Mid(out,pos,1),"	"))
        pos_c2 =  Mid(out, pos-n2, n2)
    	vbld_TempMacros.Add "c2",pos_c2
    	
     
     	 Do 
     	pos = pos +1
     	n3 =n3+1
     Loop While(StrComp(Mid(out,pos,1),"	"))
        pos_c3 =  Mid(out, pos-n3, n3)
    	vbld_TempMacros.Add "c3",pos_c3
    	
    	 Do 
     	pos = pos +1
     	n4 =n4+1
     Loop While(StrComp(Mid(out,pos,1),"	"))
        pos_c4 =  Mid(out, pos-n4, n4)
    	vbld_TempMacros.Add "c4",pos_c4
    	
    End If
    

    End Sub

    展开全文
  • Val函数Val()函数的功能是将一个数据变量转换成数字长整型变量。我们先看一个例子:按理说结果应该是“11”,为什么会这样?因为两文本框的数据类型是字符串型,两字符串相加,这时“+”加号起到连接符的作用...

    1d2de7e571492ed63693793a6d2eabd3.png

    Val函数

    Val()函数的功能是将一个数据行变量转换成数字长整型变量。

    我们先看一个例子:

    cbeb41b1cd67892537b9c953bea9ebdb.gif

    按理说结果应该是“11”,为什么会这样?

    因为两个文本框的数据类型是字符串型,两个字符串相加,这时“+”加号起到连接符的作用,只是把这两个字符串连接起来,如果让“5+6=11”就需要用Val函数把文本框的数据转换成数值型。

    我们加上Val函数再试试:

    d484d7606fe699db74ad525903ea58f5.png

    这样就可以了。

    如果字符串中含有其他字符怎么办?是这样的,Val函数会从一个字符串中第一个字符读取,直到不是数字,比如:

    Val("23.5你好623") 的结果是“23.5”

    Val(“a235”) 的结果是"0"

    Str函数

    Str() 函数正好和Val() 函数相反,它会将数值型转换成字符串型。

    Asc函数

    Asc() 函数用于返回表达式字符串的ASCII码,如果字符串超过一个字符,则只返回第一个字符的ASCII码.

    例如:

    Asc("0") = 48

    Asc("a") = 97

    Asc("A") = 65

    Asc("Aa0123") = 65

    Chr函数

    Chr()函数是将一个ASCII码转为相应的字符,它正好和Asc()函数相反。

    例如:

    Chr(65)="A"

    CSng和CDbl函数

    CSng()函数功能是将数值转换成单精度。

    CDbl() 函数功能是将数值转换成双精度。

    单精度和双精度主要是有几个区别:

    • 在内存中占有的字节数不同
    • 有效数字位数不同
    • 表示数的范围不同
    • 在程序中处理速度不同

    我们一般用不到这两个函数,除非程序数据要求特别精确。

    下载地址

    http://51vb.ys168.com/

    展开全文
  • 实用标准文案 VB常考算法八排序 1算法 1 法排序 算法 明 根据上例求最小 的思路 我 可以使用如下方法 从小到大排序 第 以第个元素逐个跟... 下面我 以 形的形式体 5 个数 排序的 程 第 6 2 2 1 1 最小 2
  • VBA 实践(5)——依城市循环比对汇总数据为何失败问题描述最近在做一个小订单,需要把其他多工作表的数据按照城市汇总到一个工作表。以其中一个工作表为例,需要汇总的数据如下图所示,共有四数据表存在于同...

    ac19bb924f5d23345363d99a2c1112c9.png

    VBA 实践(5)——依城市循环比对汇总数据为何失败

    问题描述

    最近在做一个小订单,需要把其他多个工作表的数据按照城市汇总到一个工作表中。

    以其中一个工作表为例,需要汇总的数据如下图所示,共有四个数据表存在于同一个工作表中,每个表都含有“城市”、“排名”和“指数名称”三列,有100行,各表都间隔一列,所在的工作表名称为“数字产业10大细分行业城市100强”。

    需要注意的是:数据表中的城市名称是简写,不含有“市”、“盟”、“地区”和“特别行政区”等后缀。

    a4650409feb8020da0ed530b664bb5e8.png

    汇总的excel模板如下图所示,其所在的工作表名称为“大数据指数一致性评价(城市级)”。A列城市名称,为完整名称,含有“市”、“盟”、“地区”和“特别行政区”等后缀。“指数名称”行中,指数名称的顺序与要汇总的数据表的排列顺序一致。汇总模板与需要汇总的数据表位于同一个工作薄中,现在就是要把上述的数据汇总到该汇总模板中。

    如果纯手工汇总的话,是这样的:首先汇总模板中第一个城市是北京,然后到要汇总的数据表中打到北京,复制数据,回到模板,找到对应位置粘贴,再进行下一个……

    a9ad6177e4d552c7389cd554b0731f33.png

    思路

    使用纯手工汇总,工作量很大,耗时很长,还容易出错。

    决定写一个小程序,使用两层嵌套循环,外层循环从汇总模板的A列的第一个城市循环到最后一个城市,内层循环从需要汇总的数据表的第一个城市往下循环,并与汇总模板中的城市进行一一比对。如果相同,则把指数数据填到汇总模板相应位置,然后退出内层循环。外层循环到下一个城市,再次进入内层循环进行新一轮的比对,如此进行,直到外层循环的最后一个城市,完成一个数据表的汇总。然后手动更改条件进行下一个数据表的汇总。

    遇到的错误——循环变量未初始化,内层循环只进行了一次

    刚开始写的程序如下,运行结果是:未提示出错,但只能成功往汇总模板里填入了一个数据,让人百思不得解。

    Sub 对应城市分指数汇总()
    Dim wk1 As Worksheet, wk2 As Worksheet
    Dim i As Integer, j As Integer, k As Integer, l As Integer, n As Integer
    Set wk1 = Worksheets("数字产业10大细分行业城市100强"): i = 3  '需要汇总的工作表,相关变量初值
    Set wk2 = Worksheets("大数据指数一致性评价(城市级)"): j = 4  '汇总模板,相关变量初值
    k = 1 '需要汇总的工作表城市名称所在列号,手动更改
    l = 2 '汇总模板工作表,数据填在第几列,手动更改
    n = 0 '计数
    
    '外层循环
    Do While wk2.Cells(j, 1) <> ""
        If TypeName(wk2.Cells(j, 1).Value) = "String" Then
     
            '内层循环
            Do While wk1.Cells(i, k) <> ""
                '城市名称相等的判断条件,共有四个,解决了全称名与简写名比对的问题
                If wk2.Cells(j, 1) = wk1.Cells(i, k) & "市" Or _
                wk2.Cells(j, 1) = wk1.Cells(i, k) & "盟" Or _
                wk2.Cells(j, 1) = wk1.Cells(i, k) & "地区" Or _
                wk2.Cells(j, 1) = wk1.Cells(i, k) & "特别行政区" Or _
                (Right(wk2.Cells(j, 1), 3) = "自治州" And Left(wk2.Cells(j, 1), 2) = Left(wk1.Cells(i, k), 2)) Then
                    wk2.Cells(j, l) = wk1.Cells(i, k + 2)
                    wk1.Cells(i, k + 2).Interior.Color = vbGreen  '把找到的数据涂绿,可以看出有哪个数据未成功汇总
                    n = n + 1 '计数,提示共有几个数据成功填入
                    Exit Do
                End If
                i = i + 1
            Loop
     
        Else
            MsgBox "存在非字符串数据"
        End If
        j = j + 1
    Loop
    
    MsgBox n & "个数据输入成功"
    End Sub

    原因分析

    后通过分步执行(F8快捷键),并调出本地窗口观察所有变量,发现内层循环变量i增加到103后保持不变,没有随着程序往后的运行继续变化。由于cells(103, 1)为空,循环条件不成立,所以内层循环完成一次循环后就再也无法进入循环,只剩下外层循环空转了。

    解决办法:应该在内、外层循环中间加入一行代码,使变量i初始化,即i=3。修改后的代码如下。修改后代码成功运行。

    Sub 对应城市分指数汇总()
    Dim wk1 As Worksheet, wk2 As Worksheet
    Dim i As Integer, j As Integer, k As Integer, l As Integer, n As Integer
    Set wk1 = Worksheets("数字产业10大细分行业城市100强"): i = 3  '需要汇总的工作表,相关变量初值
    Set wk2 = Worksheets("大数据指数一致性评价(城市级)"): j = 4  '汇总模板,相关变量初值
    k = 1 '需要汇总的工作表城市名称所在列号,手动更改
    l = 2 '汇总模板工作表,数据填在第几列,手动更改
    n = 0 '计数
    
    '外层循环
    Do While wk2.Cells(j, 1) <> ""

    i = 3 '内层循环变量重设为初值,使重新进入内循环

        If TypeName(wk2.Cells(j, 1).Value) = "String" Then
     
            '内层循环
            Do While wk1.Cells(i, k) <> ""
                '城市名称相等的判断条件,共有四个,解决了全称名与简写名比对的问题
                If wk2.Cells(j, 1) = wk1.Cells(i, k) & "市" Or _
                wk2.Cells(j, 1) = wk1.Cells(i, k) & "盟" Or _
                wk2.Cells(j, 1) = wk1.Cells(i, k) & "地区" Or _
                wk2.Cells(j, 1) = wk1.Cells(i, k) & "特别行政区" Or _
                (Right(wk2.Cells(j, 1), 3) = "自治州" And Left(wk2.Cells(j, 1), 2) = Left(wk1.Cells(i, k), 2)) Then
                    wk2.Cells(j, l) = wk1.Cells(i, k + 2)
                    wk1.Cells(i, k + 2).Interior.Color = vbGreen  '把找到的数据涂绿,可以看出有哪个数据未成功汇总
                    n = n + 1 '计数,提示共有几个数据成功填入
                    Exit Do
                End If
                i = i + 1
            Loop
     
        Else
            MsgBox "存在非字符串数据"
        End If
        j = j + 1
    Loop
    
    MsgBox n & "个数据输入成功"
    End Sub

    以上代码有几处地方需要手动多次更改,才能最终完成四张数据的汇总,可以说是很不完善。但它相对于纯手工来说,已经大大地提高了效率和准确率。

    学到的一点vba知识,给了我很大的帮助。欢迎大家留言交流。

    展开全文
  • 实用标准文案 VB 常考算法八排序 1 ...轮比较 第个元素被确定为最小 同样的方法 下轮以第二个元素跟剩下的所有元素进 比较确定下次小的元素以此类推 下面我们以图形的形式体现对 5 个数进行选择排序的过程 第
  • VB课程设计俄罗斯方块

    热门讨论 2011-02-25 10:46:55
    可以根据你选择的难度系数在底层的每一行随机产生超过半数(即5个以上)以上的小方块,这样适合喜欢高难度的玩家。 2.1.6游戏得分的计算和游戏菜单的编辑 游戏得分的计算主要是根据消除的行数来决定的,当然每一次...
  • VB计算幻方

    2011-11-19 11:16:40
    任意横行、及对角线的几个数之和都相等, 具有这种性质的图表,称为“幻方”。 下面是3阶幻方: 8 1 6 3 5 7 4 9 2 8+1+6(第1) 3+5+7(第2) 4+9+2(第3) 8+3+4(第1列) 1+5+9(第2列) 6+7+2...
  • Val函数Val()函数的功能是将一个数据变量转换成数字长整型变量。我们先看一个例子:按理说结果应该是“11”,为什么会这样?因为两文本框的数据类型是字符串型,两字符串相加,这时“+”加号起到连接符的作用...

    7bc5096e87f8b879c06eb2c92fce4550.png

    Val函数

    Val()函数的功能是将一个数据行变量转换成数字长整型变量。

    我们先看一个例子:

    01bcff099b9d0116495fc83a80f97d86.png

    按理说结果应该是“11”,为什么会这样?

    因为两个文本框的数据类型是字符串型,两个字符串相加,这时“+”加号起到连接符的作用,只是把这两个字符串连接起来,如果让“5+6=11”就需要用Val函数把文本框的数据转换成数值型。

    我们加上Val函数再试试:

    8d60fcaebdb2f57c93b21c81f9c38d7f.png

    这样就可以了。

    如果字符串中含有其他字符怎么办?是这样的,Val函数会从一个字符串中第一个字符读取,直到不是数字,比如:

    Val("23.5你好623") 的结果是“23.5”

    Val(“a235”) 的结果是"0"

    Str函数

    Str() 函数正好和Val() 函数相反,它会将数值型转换成字符串型。

    Asc函数

    Asc() 函数用于返回表达式字符串的ASCII码,如果字符串超过一个字符,则只返回第一个字符的ASCII码.

    例如:

    Asc("0") = 48

    Asc("a") = 97

    Asc("A") = 65

    Asc("Aa0123") = 65

    Chr函数

    Chr()函数是将一个ASCII码转为相应的字符,它正好和Asc()函数相反。

    例如:

    Chr(65)="A"

    CSng和CDbl函数

    CSng()函数功能是将数值转换成单精度。

    CDbl() 函数功能是将数值转换成双精度。

    单精度和双精度主要是有几个区别:

    • 在内存中占有的字节数不同
    • 有效数字位数不同
    • 表示数的范围不同
    • 在程序中处理速度不同

    我们一般用不到这两个函数,除非程序数据要求特别精确。

    下载地址

    http://51vb.ys168.com/

    展开全文
  • 4.当ListView能够多选时,如何得到所选中的总行(selected count)、第一个及最后一个所选(selected First ListItem(First))? 5.如何在toolbar控件的按钮之间加一分割符 ? 6.如何实现类似于显示属性的...
  • 学会VB中类的使用方法。 3.4 学习使用API增强程序的功能。 3.5 这是转入学习C语言,不一定要很强,能懂一些语法就,当然能够深入的话,就可以转C++乐。 3.6 有乐C的基础,就可以去学习数据结构乐。数据结构很...
  • 功能:10号码的出6保5型,15号码的7保5型,10号码的7保6型,检测中奖情况的通用函数过程参数:  PrizeNum()中奖号码维数组  LotteryNum()投注的号码二维数组,前面是,后面是列  返回值:中奖注...
  • VB到易语言源代码转译软件1.0演示版

    热门讨论 2010-01-14 09:23:13
    (3)尽量不要在一行中书写用“:”分隔的多条语句,应该一行只书写一条语句,否则可能出现转译不正确的问题。 (4)尽量不要在“Case”语句使用多复杂条件,否则可能出现转译不正确的问题。建议各行“Case”语句...
  • If m(i) = 0 And i > 1 Then tr(i) = Right(b, Len(b) - m(i - 1)) '处理一行中最后一逗号后的字符串 '以下部分是将存储在数组变量 m(i)的字符分类存放到方向、边长、已知坐标、网型信息等数组 k = k + 1 For ...
  • 款基于VB Access的Vod点播系统,KTV客房系统,程序主要分以下几模块:房间客户端、程序后台、前台、服务器端。程序使用有三方控件,已附在压缩包内。关于程序的一些相关说明: 1 设置自动进入程序时 800*600 ...
  • vb学生成绩管理系统

    2013-06-28 08:55:24
    完成本项工作后,就创建了一个全局变量ADOcn,但它是一个特殊的变量,其数据类型是数据连接对象(Connection对象)。可以把ADDcn理解成是一个虚拟的数据库。或者称为VB程序的逻辑数据库,通过它可以非常方便地访问...
  • f019.ZIP 如何在VB中分割一个文件并组装恢复它(18KB) 39,f018.ZIP 在VB中调用HELP文件并实现Winhelp的关键字、主题等功能(5KB) 40,f016.ZIP 查询/替换的例子(28KB) 41,f015.ZIP 拷贝文件的...
  • 使1-9每数字在每一行、每一列和每一宫都只出现一次,所以又称“九宫格”。 http://baike.baidu.com/subview/961/10842669.htm?fr=aladdin(参考百度百科的内容) 编程的初衷 办公室里忽然开始玩数独了,在百度的...
  • 例1234.567个数是3(为什么要这样定义,因为大多的基本运算都是右对齐的,这样定义减少了中间一些不必要的转换) JzBz As Integer '标记数组存的是什么进制的数(十进制或其它进制数) strlen As Long '运算数...
  • Ani 控件(182KB) 16,ft.zip 可用一行代码创建窗体边框和透明窗体的控件(19KB) 17,fsmsg20d.exe 窗体信息捕获控件(247KB) 18,fssc120d.exe 窗体滚动控件,当控件放不下时,它可以给您更大的区域...
  • Ani 控件(182KB) 16,ft.zip 可用一行代码创建窗体边框和透明窗体的控件(19KB) 17,fsmsg20d.exe 窗体信息捕获控件(247KB) 18,fssc120d.exe 窗体滚动控件,当控件放不下时,它可以给您更大的区域...
  •  在给出例程之前,有必要对这控件进行比较详尽的认识:这种控件允许将文本或者图象放置于每单元格之,控件的Row与Col属性允许用户在代码指定当前和列,当然也可通过操作鼠标和键盘来改变这两属性,而...
  • 函数作用:选取当前工作表公式出错的单元格﹐关返回出错个数...............................................101 '101.函数作用:将工作表最后列作为页脚打印在每一面页尾101 '102.函数作用:获取vbproject引用...
  • 代码 SqlCmd.Execute (ReturnValue) '执行存储过程,并将返回值赋给ReturnValue 这一行出错 实时错误'-2147217904 (80040e10)' 过程或函数'Book_Borrow'需要参数'@out_str',但未提供该参数 希望有高手可以帮我...
  • 数字签名制作.rar

    2010-08-02 10:28:18
    2 多文件压缩,用IExpree2.0,选"将文件解开并运行安装命令",生成一个"压缩运行文件" 3 对"压缩运行文件"进行签名,用signcode(在这之前要生成一个.cer的证书文件,如何生成一会儿说) 4 写入代码,CLSID没有关系的,...
  •  计算文本框输入文本的行数可以使用SendMessage函数返回,当一行文字发生环绕时,它将被当作新的一行,而被非简单的计算文本的换行符个数。 把以下API函数的声明添入模块文件的general declarations区域,如果...
  • 一行的第一个数为va的元素个数n,后面是n个整数,代表va的所有元素 第二行的第一个数vb的元素个数m,后面是m个整数,代表vb的所有元素 输出 输出合并后的长度以及vc的所有元素 样例输入 2 2 1 2 2 2 3 3 1 2 3 3...
  • 中文分词学习版

    2018-10-11 23:56:53
    含盖了IT、化工、金融、贸易、纺织、电子、制造、冶金等各各业以及日常生活用语的汉语词组。 6. 提供词组自定义功能 可根据用户需要自行添加汉语词组,并提单汉字添加或从文件批量添加功能。 7.特殊字符过滤...
  • Java开发技术大全(500源代码).

    热门讨论 2012-12-02 19:55:48
    outputMax.java 求两个数中的最大数 overflowExample.java 演示溢出 precedence.java 演示自加运算符的优先级 primeNumber.java 输出100-200之间的所有素数 ranking.java 评定成绩等级 rankingBySwitch.java ...
  • 一个 UNIX 环境变量,你需要将通配符置于引号,避免被外壳扩展。例如, 这命令将从当前路径的 RAR 压缩文件解压所有的 *.asm 文件: rar e '*.rar' '*.asm' 命令可以是下列的任何一个: ...
  • csw5.0中文分词组件

    热门讨论 2009-09-01 17:30:41
    、CSW分词组件简介 CSW中文分词组件,是一套可自动将段文本按常规汉语词组进行拆分,并以指定方式进行分隔的COM组件。本组件采用独有的高效的分词引擎及拆分算法,具有准确、高速、资源占用率小等特点。为了...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 124
精华内容 49
关键字:

vb中5个数一行