提取文本框中的多行文字,如下:
土建10
電氣4
水暖8
主程序提取“土建10”,子程序把“土建10”分別提取“土建”和“10”
程式如下:
Private Sub command_Click()
Dim s1, s2, a, b, n2, s() As String
Dim i, j, h As Integer
s1 = wz.Text
s2 = ""
s = Split(s1, vbCrLf)
For i = 0 To UBound(s)
s(i) = Trim(s(i))
If Len(s(i)) > 0 Then
Call sz(a, s)
Call wb(b, s)
......
Private Sub sz(ByVal l1, r1() As String)
Dim n1 As String
Dim m1 As Integer
For m1 = 1 To Len(r1())
n1 = Right(r1(), m1)
If IsNumeric(n1) = True Then
l1 = n1
End If
Next m1
End Sub
運行后提示編譯錯誤:要求變數—不能為該運算式賦值,哪位高手幫忙指點一下。
uj5u.com熱心網友回復:
n1 = Right(r1(), m1)紅色的挎號錯誤,不需要
uj5u.com熱心網友回復:
程式執行到這For m1 = 1 To Len(r1())就提示錯誤了,而且把r1()的括號去掉也提示同樣的錯誤uj5u.com熱心網友回復:
Private Sub sz(ByVal l1, r1 As String)n1 = Right(r1, m1)
uj5u.com熱心網友回復:
這樣的話,執行到call sz(a,s)時,提示byref引數型別不符,這里的s是陣列型別,而r1是字符型,引數傳遞時肯定不對。懇求高手指點。uj5u.com熱心網友回復:
'以下,增加紅色位置,洗掉藍色位置
If Len(s(i)) > 0 Then
Call sz(a, s(i))
Call wb(b, s)
......
Private Sub sz(ByVal l1, r1() As String)
Dim n1 As String
Dim m1 As Integer
For m1 = 1 To Len(r1())
n1 = Right(r1(), m1)
If IsNumeric(n1) = True Then
l1 = n1
End If
Next m1
uj5u.com熱心網友回復:
這樣的話,執行到call sz(a,s)時,提示byref引數型別不符,這里的s是陣列型別,而r1是字符型,引數傳遞時肯定不對。懇求高手指點。哎,你的command_Click 呼叫的地方,當然也要相應的改啊,傳字符過來啊,
我看你的sz function就是處理一個字串,那有這么復雜啊
uj5u.com熱心網友回復:
'以下,增加紅色位置,洗掉藍色位置
If Len(s(i)) > 0 Then
Call sz(a, s(i))
Call wb(b, s)
......
Private Sub sz(ByVal l1, r1() As String)
Dim n1 As String
Dim m1 As Integer
For m1 = 1 To Len(r1())
n1 = Right(r1(), m1)
If IsNumeric(n1) = True Then
l1 = n1
End If
Next m1
uj5u.com熱心網友回復:
樓上的程式輸入這一段Call sz(a, s<SPAN style="COLOR: #ff0000">(i)</SPAN>)時,提示缺少串列分隔符或)。懇求高手指點
uj5u.com熱心網友回復:
我現在不懂是,呼叫子程序時r1()陣列引數如何設定,才能把s陣列引數傳遞給r1()。uj5u.com熱心網友回復:
怎么沒人回答我的問題啊?uj5u.com熱心網友回復:
5樓/7樓已經回答了你的問題!根據提示修改原代碼,不要復制回復的代碼。
uj5u.com熱心網友回復:
我沒有明白5樓“s<SPAN style="COLOR: #ff0000">(i)</SPAN>) ”這個是什么意思?按照7樓說的我做了,提示錯誤。
uj5u.com熱心網友回復:
樓主似乎沒學語文的。
7F 已經說得很清楚了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/153423.html
標籤:VBA
上一篇:重復呼叫dos程式并寫入檔案名
下一篇:求計數器一個
