excel如何制作坐标轴双纵坐标excel

vb6.0 判断数组为空
方法一:Error方法
就是采用通用的错误捕获功能
On Error Goto 行号&&&&&& '遇到错误,转到行号处处理
On Error Resume Next '忽略错误,继续执行
On Error Goto 0&&&&&&&&&& '强制取消错误捕获功能
Function IsNotEmpty(ByVal sArray As Variant) As Boolean '判断数组是否为空
&&&&&&& Dim i&&&& As Long
&&&&&&& IsNotEmpty = True
&&&&&&& On Error GoTo lerr:
&&&&&&& i = UBound(b)
&&&&&&& Exit Function
&&&&&&& IsNotEmpty = False
End Function
方法二:CopyMemory方法
VB的数组都是安全数组,通过访问一个结构来确定 数组内容保存位置,上标下标和维数
安全数组结构的地址可以用
Private Declare Function VarPtrArray Lib "msvbvm60.dll" Alias "VarPtr" (ByRef Ptr() As Any) As Long
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" _
&&&&&&&&&&&& (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
安全数组的头两位就保存着维数信息
Option Explicit
Private Declare Function VarPtrArray Lib "msvbvm60.dll" Alias "VarPtr" (ByRef Ptr() As Any) As Long
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
Private Sub Form_Load()
&&& Dim MyArr() As Long
&&& Dim pMyarr As Long
&&& Dim nDims As Integer
&&& '从数据指针得到SafeArray结构的指针
&&& CopyMemory pMyarr, ByVal VarPtrArray(MyArr), 4
&&& If pMyarr = 0 Then
&&&&&&& MsgBox "这个数组是空数组"
&&&&&&& '再从这个指针所指地址的头两个字节取出cDims
&&&&&&& CopyMemory nDims, ByVal pMyarr, 2
&&&&&&& MsgBox "这个数组有" & nDims & "维"
&&& End If
方法三:使用api函数safearraygetdim()的返回值,返回值值&=0,说明数组元素个数为0或者数组还没有初始化.
SafeArrayGetDim用来判断一个数组的维数,该函数在MSDN中定义为:
UINT SafeArrayGetDim(
& SAFEARRAY FAR* psa&
转换维VB中的语法格式为:
Public Declare Function SafeArrayGetDim Lib "oleaut32.dll" (ByRef saArray() As Any) As Long
如果数组已经初始化,则返回非0,否则返回0。
'API判断数组为空或没有初始化
Sub diag()
Dim msg As String
Dim arr1() As String, arr2() As String, arr3() As Date, arr4() As Date, arr5() As Range, arr6() As Range
msg = "arr1 " & IIf(SafeArrayGetDim(arr1) & 0, "数组不为空!", "数组为空!")
arr2 = Split("一、二、三、四、五、六", "、")
msg = msg & vbCrLf & "arr2 " & IIf(SafeArrayGetDim(arr2) & 0, "数组不为空!", "数组为空!")
msg = msg & vbCrLf & "arr3 " & IIf(SafeArrayGetDim(arr3) & 0, "数组不为空!", "数组为空!")
ReDim arr4(1 To 100)
msg = msg & vbCrLf & "arr4 " & IIf(SafeArrayGetDim(arr4) & 0, "数组不为空!", "数组为空!")
ReDim arr6(1 To 256, 1 To 65536)
msg = msg & vbCrLf & "arr5 " & IIf(SafeArrayGetDim(arr5) & 0, "数组不为空!", "数组为空!")
msg = msg & vbCrLf & "arr6 " & IIf(SafeArrayGetDim(arr6) & 0, "数组不为空!", "数组为空!")
MsgBox msg
方法四:使用cstr(Join(list[, delimiter]))函数的返回值是否不等于""
将delimiter参数设置为""
例如:if (cstr(join(arr,""))) = "" then msgbox "arr 数组为空或者尚未初始化"
TA的最新馆藏查看: 3578|回复: 2
vb6.0 如何判断字符串内容是否为空,就是字符串里面全是空格,回车之类的
假设有字符串str
str=replace(str,& &,&&)
str=replace(str,vbcrlf,&&)
str=replace(str,vbcr,&&)
str=replace(str,vblf,&&)
if str=&& then
'就说明是空
vbcr是\r, vblf是\n
vbcr是\r, vblf是\n
小雨NEIL 发表于
& & \r& && & \n& &&&是什么?&&老师?
Powered by
& 最好的辅助编程技术论坛判断一个记录集为空的两种方法那个好?该如何处理 - VB当前位置:& &&&判断一个记录集为空的两种方法那个好?该如何处理判断一个记录集为空的两种方法那个好?该如何处理&&网友分享于:&&浏览:91次判断一个记录集为空的两种方法那个好?判断一个记录集为空用下面的那个好?if
response.write
&empty && end
if...............................................if rs.recordcount=0 then &response.write
&empty && end if------解决方案--------------------if rs.recordcount=0 then
------解决方案--------------------第一种好,对于服务器游标和客户端游标都通用
------解决方案--------------------if rs.bof and rs.eof then这种好一点,有时候会出现本无记录,但是rowcount =1的情况,这跟SQL写法和不同的库有关系。
------解决方案--------------------rs.recordcount=0
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有2478人阅读
【VB.NET】(2)
【机房收费系统】(10)
&&& 房收费系统的时候,令人相当恶心的一件事就是判断文本框和组合框是否为空还有清空文本框。基本上每个窗体都要进行判断,那一个接着一个的If...Else...语句,长长一串,看着就头疼,但是第一次做机房收费系统的时候竟然傻傻的一个不落都写了出来。真佩服当时的自己,不过这一次还是不要在做那种傻事了,因为我们经历了不少面向对象的洗礼,认识了抽象。
&&&&&&&& 向对象的范畴里,对于相同的或者类似的代码只要重复3次以上我们应该想到面向对象的三大特性之一:抽象。想是想到了但是具体怎么通过抽象和封装来简化繁琐的判断任务呢?
1. 首先新建一个模块,在UI层右键-添加-新建项-选择&Model
&&&&&&&&&&&& &
2. 然后在Model中定义一个结构体Term,且定义一个term类型的结构体数组
&&&&&&&&& 构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。和基础数据类型Int,Char一样,可以把它定义成自己需要的数据类型。 详情请百度一下。
&span style=&font-size:18&&
'定义结构体Term
Public Structure Term
Dim controlSub As Control
Dim strText As String
Sub New(ByVal controlSub As Control, ByVal strText As String)
.controlSub = controlSub
.strText = strText
End Structure
'定义一个term类型的结构体数组
Public arrayControl() As Term
3. 然后我们就可以在需要的窗体下定义一个过程Rdim() 作用是初始化这个Trem类型的结构体数组。
&span style=&font-size:18&&Private Sub Rdim()
ReDim Preserve arrayControl(9)
'重定义数组维数
'初始化数组
arrayControl(0) = New Term(txtCID, &卡号&)
arrayControl(1) = New Term(txtBalance, &充值金额&)
arrayControl(2) = New Term(txtSID, &学号&)
arrayControl(3) = New Term(txtName, &姓名&)
arrayControl(4) = New Term(cmbsex, &性别&)
arrayControl(5) = New Term(txtDepartment, &系别&)
arrayControl(6) = New Term(cmbGrade, &年级&)
arrayControl(7) = New Term(txtClass, &班级&)
arrayControl(8) = New Term(cmbType, &类型&)
arrayControl(9) = New Term(cmbstatus, &卡的状态&)
4. 然后该函数了,先说IsEmptyText()函数,作用是判断文本框、组合框的内容是否为空,为空的话给出相应的提示。它同样写在Model中
''' &summary&
''' 判断数组中控件的Text属性是否为空,并给出相应提示
''' &/summary&
''' &param name=&arrayControl&&需要遍历的结构体数组&/param&
''' &returns&返回Boolean值,true表示为空,false表示不为空&/returns&
Public Function CheckIsEmpty(ByVal arrayControl() As Term) As Boolean
Dim termControl As Term
'声明一个Term类型变量termControl
'遍历结构体数组中的所有元素,如果控件文本为空,则进行相应提示
For Each termControl In arrayControl
'遍历结构体数组中所有元素
If TypeOf termControl.controlSub Is TextBox Then
'判断控件是否为文本框
If termControl.controlSub.Text.Trim = && Then
'判断文本框内容是否为空
MessageBox.Show(termControl.strText & &不能为空哦!&, &&, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
termControl.controlSub.Focus()
'为空控件得到焦点
Return True
Exit Function
ElseIf TypeOf termControl.controlSub Is ComboBox Then
'判断控件是否为组合框
If termControl.controlSub.Text.Trim = && Then
'判断组合框内容是否为空
MessageBox.Show(termControl.strText & &不能为空哦!&, &&, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
termControl.controlSub.Focus()
'为空控件得到焦点
Return True
Exit Function
Return False
End Function
5. 一键清除文本框内容的函数,在Model中添加函数AllEmpty()
''' &summary&
''' 清空窗体中所有文本框、组合框的Text
''' &/summary&
''' &param name=&arrayControl&&需要遍历的结构体数组&/param&
''' &returns&返回布尔值,True&/returns&
''' &remarks&&/remarks&
Public Function AllEmpty(ByVal arrayControl() As Term) As Boolean
Dim termControl As Term
'声明一个Term类型变量termControl
'遍历结构体数组中的所有元素,清空其Text属性
For Each termControl In arrayControl
'遍历结构体数组中所有元素
If TypeOf termControl.controlSub Is TextBox Or TypeOf termControl.controlSub Is ComboBox Then
termControl.controlSub.Text = &&
'如果是文本框或组合框则清空
Return True
End Function 
6. 上面说明了这么多,现在到调用的时候了。
检查是否为空:
Private Sub btnEmpty_Click(sender As Object, e As EventArgs) Handles btnEmpty.Click
Call Rdim()   ’首先调用Rdim过程进行数组初始化
'再调用IsEmptyText()函数,检测是否输入文本内容
If CheckIsEmpty(arrayControl) Then
一键清空:
Private Sub btnEmpty_Click(sender As Object, e As EventArgs) Handles btnEmpty.Click
Call Rdim()   ’首先调用Rdim过程进行数组初始化
'调用清空函数,把窗体中控件的文本清空
If AllEmpty(arrayControl) Then
其他窗体应用该函数的时候只需要定义一个过程Rdim() 初始化Trem类型的结构体数组,再调用函数即可。
非常方便!随着学习,正在逐渐的触摸到面向对象思想所带来的好处。
(PS:不当的地方,恳请指出!)
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:269506次
积分:8867
积分:8867
排名:第1794名
原创:176篇
评论:3242条
阅读:10904
阅读:21754
阅读:9696
文章:11篇
阅读:17020
(4)(4)(4)(7)(10)(16)(8)(4)(6)(8)(4)(4)(4)(4)(4)(4)(4)(4)(4)(4)(5)(3)(3)(3)(4)(4)(4)(4)(5)(4)(5)(4)(2)(3)(8)(2)(4)

我要回帖

更多关于 excel如何做双坐标轴 的文章

 

随机推荐