Function IsCanGetCorrectRegister() As Boolean
'/////////////////////////////////////////////////////////////////////////
'能否从本计算机得到正确的注册码
Dim bReturn As Boolean
Dim longVolInfo As Long
Dim strRegisterCode, strStandardRegister As String
Dim strRegisterCodeFromFile As String 50
Dim strThisWorkbookPath As String
‘ ---------------上面这些都是声明要用的变量----------------------
bReturn = False ’赋值为false
longVolInfo = GetVolInfo(4866683, 0)’调用GetVolInfo()方法,返回值存到longVollnfo
strRegisterCode = ProductCecretCode(longVolInfo)'调用ProductCecretCode方法
strThisWorkbookPath = GetThisWorkbookPath ‘设置工作簿路径(可能是已经在哪里设置好了全局变量,这里直接赋值)
Open strThisWorkbookPath + "\" + "infotxt" For Random As #1 ’打开路径下来的 infotxt
文件
Get #1, 1, strRegisterCodeFromFile ‘把文件内容读入变量strRegisterCodeFromFile
Close #1 ’关闭文件
strStandardRegister = CStr(Left(strRegisterCodeFromFile, Len(strRegisterCode)))‘调用方法并取得返回值
If StrComp(strRegisterCode, strStandardRegister, vbBinaryCompare) = 0 Then’调用方法,并判断返回值是0,则bReturn=true,否则是false
bReturn = True
Else
bReturn = False
End If
IsCanGetCorrectRegister = bReturn‘把最终结果赋值给变量
End Function
----总体来说应该是验证什么东西的子程序,程序中到处调用其它子程序来运算--
部分代码有误,修正参考如下:
Public Sub 自动记录调查数据()
Dim temp As Integer
Dim count As Integer
temp=Sheets("数据表")[A1]CurrentRegionRowscount
count = temp - 3 '
Sheets("问卷")Select
Range("A50:H50")Select
SelectionCopy '
Sheets("数据表")Activate
Rows(temp + 1)Select
ActiveSheetPaste
Cells(temp + 1, 13)Value = count + 1
Sheets("问卷")Select
ApplicationCutCopyMode = False
MsgBox "记录已成功保存,谢谢!", vbOKOnly, "确定"
End Sub
希望能帮上忙!
Call vba_start 是指执行 vba_start 这个程序
vba_start 是另外一个 Sub过程
你要贴的 是 vba_start 这个程序的代码
如果没有,就要 添加
在你定义的程序中,其实这个时候 A5 只是一个变量名称,并不代表单元格 A5。
因为你没有强制变量声明,所以默认 A5 是一个 Variant 类型的变量。如果你在所有子程序的前面写上一句:
Option Explicit
然后你就可以发现这个错误了!
因为是一个默认的Variant 变量,此时的值肯定为 NULL。所以才会得到这个结果。
你再试试看把这句代码改成如下的语句会是什么结果:
x = Mid(Range("A5"), 1, 1)
希望能够帮到你!
你用function的话,这个是个函数,是个值,当然不能在那儿孤零零的使用。
要这样用,a=char_a("[n]",3),要赋予某个变量。
而sub就不一样了,本身只是个子程序,调用即可。
call sub(a,b)或者sub a,b
修改后的结果,楼主查收:
Sub char_a(q As String, w As Single)
If Len(q) < 0 Or w <= 0 Then
MsgBox "函数参数错误"
Exit Sub
Else
With UserForm1 '估计楼主是在某个窗体中使用的,姑且定为userform1
i = TextBox1SelStart
n = Left(TextBox1Value, TextBox1SelStart)
m = Right(TextBox1Value, Len(TextBox1Value) - TextBox1SelStart)
TextBox1Value = n & q & m
TextBox1SelStart = i + w
End With
End If
End Sub
各个模块使用如下:
Private Sub Label1_Click()
Call char_a("[n]", 3)
End Sub
Private Sub Label2_Click()
Call char_a("[p##]", 4)
End Sub
Private Sub Label3_Click()
Call char_a("[mp##]", 5)
End Sub
运行成功!
zhouziyan2001 ,离线解释:
Dim i As Long, j
'定义变量
For i = 1 To Sheet8Range("a65536")End(xlUp)Row
'运算从Sheet8的第一行到第一列的最后一个有内容的单元格所在列
'对后面内容,你可以查找END()的帮助来理解
Sheet3Cells(i, 1)Formula = "=MATCH(Sheet8!A" & i & ",Sheet1!A:A,0)"
'本句为了节省代码,直接借用了EXCEL的公式来查找符合条件的单元格所在的行;
'函数MATCH就是查找函数
'否则,要自己编写查找循环代码,由于VBA是解释执行,会导致效率很低,
'Formula就是把后面的公式写到该单元格中并运算
j = Sheet3Cells(i, 1): Sheet3Cells(i, 1) = ""
'找到后将值(也就是查找到的行)传递给变量j,
If IsNumeric(j) Then
Sheet1CellsRows(j)Cut
Sheet3Rows(i)Insert
Sheet1CellsRows(j)Delete
End If
'IF语句用来将该行复制,粘贴在SHEET3的相关行中,结束后将该行删除
'如果在同一工作表中,该三行语句可简化为: CellsRows(j)Cut Rows(i)
Next i
'运行下一行
以上就是关于Excel中的一段VBA代码解读全部的内容,包括:Excel中的一段VBA代码解读、求问VBA编程中出现错误:缺少子程序、函数或属性、Call vba_start VBA显示子程序或函数未定义,代码如下,请问哪里出了问题了,VBA小白求解答,谢谢。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)