Office中国论坛/Access中国论坛

标题: [求助]一個截取字付串前綴零的函數 [打印本页]

作者: HG    时间: 2002-6-28 18:38
标题: [求助]一個截取字付串前綴零的函數
現有一問題,想截取字付串前綴零的函數,向函數傳遞一個字付串參數,然后截取掉前綴零,返回一個沒有一個前綴的字串付。寫柒如下:

Public Function prefix(chrstr As String) As String

Dim strlen As Integer
Dim counter As Integer
Dim strword As String

strlen = Len(chrstr)
counter = 1

For counter = 1 To counter <= strlen
strword = Mid(chrstr, counter, 1)
If strword <> CStr(0) Then
    del_perfix = Mid(chrstr, counter, (strlen - counter))
  Exit For
End If

counter = counter + 1
Next counter

End Function

但是出現錯誤,無紹果返回。
為什么?或誰有好的方法給點,多謝
作者: HG    时间: 2002-6-29 19:19
沒有人伸出您友誼手,給一點溫暖嗎?
作者: cattjiu    时间: 2002-6-29 20:25

Public Function prefix(chrstr As String) As String

Dim strlen As Integer
Dim counter As Integer
Dim strword As String

strlen = Len(chrstr)
counter = 1
Do While counter <= strlen
strword = Mid(chrstr, counter, 1)
If strword = "0" Then
prefix = Mid(chrstr, counter + 1, (strlen - counter))
counter = counter + 1
Else
perfix = Mid(chrstr, counter, (strlen - counter))
Exit Do
End If
Loop

'For counter = 0 To counter <= strlen
'strword = Mid(chrstr, counter, 1)
'If strword <> "0" Then
'del_perfix = Mid(chrstr, counter, (strlen - counter))
'Exit For
'counter = counter + 1
'End If


'Next counter
End Function

测试通过!
作者: HG    时间: 2002-7-1 17:27
多多謝cattjiu,令天才發現我在編程上是哪么的馬虎大意,
您的的思路其實只有一步之差。我的也是正確的,但是函數返回值時把函數名拼寫錯,
您有沒有發現哪?


[此贴子已经被HG于2002-7-1 9:27:25编辑过]


作者: cattjiu    时间: 2002-7-1 19:27
我也是跟你学怎么写函数,以前只写过程。
我喜欢用msgbox+变量来返回运行情况,然后用F8一步步看,发现你的if后面应该是=.
以后多教我函数怎么写
作者: HG    时间: 2002-7-1 21:03
談談函數的和過程我的見解,函數和過程基本是只是個關鍵字上的不同,其意義大多是一樣的。
但不同點是,函數可以有返回值,而過程似乎返回值的調用有些麻煩。如果有很多相關的函數或屬性,則可以創建一個類模塊來集中管理,這樣在有錯誤的時候,就不用每個窗體或報表都重寫代碼,還有您的類模式塊,可以給其它支持VBA的office程式用,比如execl等.




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3