transpose函数无法更改部分数据?

  vba是编程语言,宏是用vba代码保存下来的程序。录制的宏是vba里最简单的程序,正因为如此,录制宏存在许多缺陷:如无法进行判断和循环,不能显示用户窗体,不能进行人机交互……

  解决录制宏的这些问题,需要掌握vbs编程的方法,自主的编写vba程序。

  • 代码:vba程序由代码组成。
  • 模块:保存过程的地方,一个模块可以保存多个不同类型的过程
  • 对象:用代码操作或控制的东西即为对象,例如工作簿、工作表、单元格、图片、图表、透视表等
  • 2、在VBE代码窗口中首先键入“VBA.”系统会自动提示“函数列表”,如图

    [Exit For] \'可以在循环体中任意处加一句或多句Exit For,当遇到这个语句,退出For循环,执行Next后语句

      do Until 后的逻辑表达式为False则执行循环体,否则退出循环,跟Do While相反。

    当前活动工作簿中有许多工作表,但并不知道数量。如果要把所有工作表的名称按次序写入活动工作表的A列,For Each…Next是更适合的循环。

     “去到指定地点”,用来让程序转到另外一条语句去执行。

     当需要对相同的对象进行多次操作时,会编写一些重复代码

    声明sub过程的规范语句

    \'所有[]内容都是可选的
    \'Exit Sub:可选语句,执行它将中断执行并退出过程
    \'如果选用Static,运行程序的过程中将保存该过程里声明的本地变量
    \'Private和Public用于声明过程的作用域名,如果省略,过程默认为公共过程
     

    方法一:过程名[参数1,参数2…]

     公共过程:可以跨模块调用,用Public 或省略不写。

     私有过程:只能在模块内调用,用Private

     Function过程也称为函数过程,编写一个Function过程,就是编写一个函数。

    \'最后必须将结果赋值给函数名称
     

    定义函数:生成1-10之间的随机整数

    • 使用函数方法一:直接在单元格加“=”调用
    • 使用函数方法二:通过“函数”——“用户定义” 选择
    • 用户定义函数可以和其他函数嵌套使用
    •  在VBA过程中使用自定义函数

     RGB函数中,R代表红色,G代表绿色,B代表蓝色

    • 判断单元格是否是黄色,是则返回1,否则返回0
    \'最后必须将结果赋值给函数名称
     
    • 统计指定颜色的单元格个数
    \'最后必须将结果赋值给函数名称
     
    \'最后必须将结果赋值给函数名称
     
    • 给自定义函数第2个参数
    \'最后必须将结果赋值给函数名称
     
    • 设置自定义函数为易失性函数

    工作表重新计算(按F9重新计算,或重启工作簿)之后,自定义函数并不会重新计算。

    如果将自定义函数设置为易失性函数,无论何时重新计算工作表,函数都会重新计算。

    \'最后必须将结果赋值给函数名称
     

    更改长行代码为短行代码,在子句后面输入一个空格和一个下划线(_),然后换行,这就把一行代码分成两行。

    把多行合并为一行,在第一行代码后加上英文冒号(:),可以接着写第二行代码

    注释:用英文单引号(\')表示后面的语句为注释

    注释Rem:用Rem注释只能注释一整行,注释行不能有代码逻辑

    批量注释:在VBE窗口中,“视图”——“工具”——“编辑”——“设置注释块”  【或解除注释块】

    自动列出成员设置:VBE下“工具”——“选项”——“编辑器”选项卡下——“自动列出成员”

}

A:使用VENTSTRUCT捕获面板事件后,将不同的事件对应于不同的字符串和其他,再通过Q

A:写入时加入了头信息,多出的4个字节就是头信息,代表了数组或字符串的长度。在WR
T,代表加入头信息;如果将其改为F,就不会多出4个字节了。

48、 卸载Labview7.1时出现错误1603,接着出现错误1722和1721,程序询问是否继续卸
载操作,怎样消除该错误并正确卸载7.1?
A:该错误通常出现在试图卸载某些共享组件的时候。按照以下步骤可以解决该问题。
1) 注意当错误发生时是在卸载哪一部分组件。一般讲在卸载LV核心部分或LV RUNTIME
ENGINE的时候容易出现。
2) 当出现错误代码1603,弹出对话框提示继续卸载操作时候,点击YES
3) 如果卸载完成之后提示需要重新启动计算机,点击NO。
4) 对于卸载过程中产生的错误,从CD相应的文件夹中手动运行相应的组件,路经如下:
5) 修复之后再次运行这些MSI,选择卸载按钮。这样就可以完全卸载。

49、Labview7.1在编写大型程序时希望优化计算机的内存使用,那么需要考虑哪些内容?

A:1)、将VI分解为SUBVI,当SUBVI不再被执行的时候,LV能够释放它的内存。
2)、尽可能少使用全局变量或局部变量,这两者会造成LV为数据备份。
3)、在需要时才在打开的前面板上显示大型数组和字符串,因为前面板的显示控件需
要复制他们显示的数据。
4)、属性节点会造成SUBVI的前面板滞留在内存中,这样会增加内存的使用。因此,如
果SUBVI的前面板不被显示,不要在SUBVI中使用属性节点。
5)、尽量在数组中使用相同的数据类型,并在传输数据进入子VI使用强制小数点位置
。当LV改变数据类型,输出需要一个新的缓存。
6)、当设计流程图,要注意任何输入大小与输出的大小不同的地方。EG:频繁的增加
数组或者字符串的大小将造成数据的多次复制。造成内存增加,并造成内存碎片。

A:可以完成对缓存的设置,放的位置一定要跟在串口配置VI的后面,MASK的设置要对,如
果不设置,默认值为4096Bytes,如果需要用串口读取的数据比这个大,就会造成数据丢失

55、 使用串口过程中发生如下错误:
A:这是由于访问COM口的软件引起的,有可能是运行LV程序打开了VISA的对话而没有关闭
它;或者打开了一个永远不能关闭的超级终端连接。或者是其他的软件正在使用该串口或
者串口挂起了,这是需要关闭所有的程序。若果还是没有解决,最后方法:禁止COM口以释
放资源;步骤如下:打开控制面板,点击系统图标,选择设备管理器,展开端口,选中要
操作的串口,右击选择属性,在常规选项里选择不再使用该设备。或者直接右击选择停用
。设定完毕重新启动,然后选择再启用该串口。

57、 LV在做网络发布的时候,能否在由LabVIEWWEBServe生成的HTML中嵌入其他语言写的
脚本文件?或者在其他网络服务器上使用由LV生成的HTML?
A:这两种情况都是不允许的,原因在于NI的Web Server不允许这样的操作。LV的Web Ser
ver无法将非LV环境下生成的脚本信息传送到客户端浏览器,也无法访问客户端浏览器中非

58、 如何较精确的判断延时时间?
影响,而且重复延时后会产生积累误差。而Elapsed Time使用的系统时间(精确到Ms),

61、 Labview7.1,Time Loop结构主程序内调用了两个不同功能的子程序,当子程序被调
用时弹出子VI前面板。子程序内均使用了Time Loop,设置均一样,但是调用任一子VI后另
p name名称相同造成的。

A:举例对于waveform graph,我们可以调出它的属性节点,然后在属性节点中选择Curso
r list,程序就会以簇数组的形式列出所有的游标,先索引出来某个游标,然后再利用簇
函数就可以修改了,如果要改变游标的坐标,可以Index Array 索引出某个游标,然后Bu
ndle by name就可以修改,再replace array或者其他数组函数,将改变后的簇数组写入另

64、 如何自定义窗口标题字符,而不是用默认的Vi 名称?
果希望在程序中修改标题,可以使用VI Server中属性FP.Title

这个向导为PXI/PCI或USB设备创建一个INF文档,点击Next。此时出现VISA DDW基本设备信
息窗口。2)进行这一步时,需要清楚USB供应商ID和产品ID。这两个数据都是16位十六进
是一个描述符,用来识别本设备所用的相关文档。在USB Instrument Prefix中输入相应信
文档就创建好并保存在您指定的位置了。假定Windows XP操作系统。
复制INF文档并将其放入INF文件夹,这个文件夹的位置通常是:“C:WINDOWSINF”。这个
右击C:WINDOWSINF文件夹中INF文件,然后点击Install。这个过程为您的文件创建了PNF
文档。现在就可以准备安装USB设备了。
连接USB设备。Windows探测到您的USB设备后,立即会打开“添加新硬件向导”。遵照屏幕
上有关向导程序的指定行事。如果您准备为该设备选择驱动程序,就请浏览INF文件夹,并
选择您使用DDW创建的INF文档。就可以在MAX和LV中编成控制了。

A:读出的二维数组是以列为单位存放数据的,而waveform graph显示2D数组是以每行作为
chart与graph刚好相反,是以每列数据作为一条曲线进行输出的,所以不加转制就可以用
chart代替工人阿婆和也可以正常显示。

67、 Labview7.1DataSocket协议传输数据怎样保证客户端完整地从服务器接收数据而不丢
A:数据丢失的原因是读取数据的速度比发布慢使得数据被覆盖,处理方法有两方面:
1) 提高客户端运行速度,保证服务器发布新数据前已经读完。
过属性节点设置缓存大小。同时也可以用属性节点作缓存区诊断。

68、 如何将MAX配置文件保存下来?
A:在MAX里,当配置完成后,在菜单栏,选择FILE---Export,选择保存位置已经类型,点
击Next,选择需要保存的文件,接着点击Export,finish。载入时,选择Import

A:状态框图使用一个图形化状态框图标识,定义多个状态及其转移逻辑,并包含有自动生
成LV代码的工具,在对于搭建大程序的构架上是很有用的一个工具

70、 LV7.1用局部变量的时候只能将机械动作改成Switch,而不能用Latch,例如用Stop按
钮停止两个并行的循环,怎么做?
A:在用Latch方式时,系统读这个控件一次后自动改为默认值,所以用Latch方式时用局部
变量,在两次读出的值即使时间间隔很短也不能保持一致,所以就不能用了。此时,可以
用Switch方式,并在程序开始时初始化按钮就可以了。

71、在ActiveX容器中播放Flash的动画,如何实现在LV中响应Flash中的按钮动作?
A:通过调用ActiveX,可以在LV中播放*.swf的动画。响应FLAH中控键动作的办法是用一个
事件结构,在ActiveX容器中特定区域响应鼠标动作。

72、在调试LV7.1程序的时候,程序总是进行到无法响应得状态,然后只能强行关闭,因此
A:在VI前面板有个长度很大的字符串Indicator,因此程序在刷新屏幕的时候很消耗资源
,将这个Indicator设为隐藏,问题就解决了。同样的问题也会出现在数据量很大的Graph
,Chart,甚至探针上。

73、Labview7.1中一个while循环嵌套另一个While循环,如何通过一个布尔量停止这两个
A:创建一个布尔量的局部变量,用这个局部变量控制一个循环,用布尔量控制另一个循环
,注意机械特性是不能带锁存的(Latch)。

74、采集3路信号,需要根据一列的数据的值来对整个数组进行排序,保证每一排的数据仍

75、 每次运行时CPU使用率都达到100%,为什么?
A:循环里面没加延时就会有这种现象发生

76、仪器驱动器的概念和VISA的特点?
A:仪器驱动器是指使用标准化的I/0函数仪器设备进行通信的程序,主要用于对仪器进行
程控操作。在LV编程语言中,仪器驱动器是指由VISA标准和仪器程控指令共同构成的仪器
控制程序的应用接口(API)。仪器驱动器采用VISA标准编程,从而可避开许多复杂而低级
的仪器程控命令。VISA是虚拟仪器体系结构的简称,它的特点有1)面向对象编程;2)VI
SA是当前所有仪器接口类型功能函数的超集,且十分简洁。3)VISA作为标准函数,与仪器
的I/O接口类型无关;4)VISA程序与操作系统与编程语言无关。

77、如何选择告诉CAN卡和低速CAN卡的使用?
A:高速CAN 和低速CAN设备是不能允许于同一个CAN网络中。如果CAN设备是Serials 2 的
CAN设备那么是有两个PORT分别可以做高速CAN和低速CAN的,而且是通过软件来设置的,直
接在MAX里找对应的CAN设备选择相应的PORT的属性就可以更改是高速还是低速CAN。如果S
erials1的就需要一个端子,从一个CANport分出两个Port分别作高速CAN和低速CAN,也是

78、如何使用Read Text File函数从文本文件中逐行读取数据?
A:在Read Text File函数的输入输出端口无法设置读取行的功能。只有用鼠标右击该函数
,从弹出的快捷菜单中选择Read Lines才能实现读取行的操作。将这个函数放到一个循环
里,就可以实现逐行读取的目的了。

79、用Labview写的串口程序,生成EXE文件后不能在没有Lv的机器上运行,这台机器已经
A:如果串口程序使用VISA写的,就需要在目标及其上安装相应的VISA驱动。可以在目标及
其上单独安装VISA驱动,也可在Labview中使用打包功能将VISA驱动和应用程序一起做成一
个安装文件,统一安装到目标机器上。

}

我要回帖

更多关于 修改sequence当前值 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信