看板 Visual_Basic 關於我們 聯絡資訊
※ 引述《sharon999 (夏天)》之銘言: : Sub 去零值() : Dim 轉換格式 As String : Dim BB, AnyString, MyStr : Sheets(1).Select : 轉換格式 = Application.WorksheetFunction.Text(Range("B1"),"[DBNum2]") : Range("B2").Value = 轉換格式 : BB = "零" : k = Len(轉換格式) : For i = 1 To k : MyStr = Mid(轉換格式, i, 1) : If MyStr < > BB Then : aa = aa + MyStr : End If : Next : Range("B3").Value = aa + " 元整" : End Sub sub是處理一個動作,function是做一套內部計算之後傳回一個答案. 你問以上sub要怎麼改function,很難回答你,因為你還要想想你要什麼樣的function. 因為最少把Sub和End Sub改成Function和End Function,並且在function內多加最後 一行為「去零值 = (aa <> "")」也是個辦法,但意義不大. 以下是一種可能: 「去零值」沒有參數,只處理B1格子; 此函數計算結果傳回一個答案為原有的 Range("B3").Value 怎麼做呢? Sub和End Sub都改成Function和End Function, 並將原來的最後一行「Range("B3").Value = aa + " 元整"」改成 去零值 = aa 這樣去零值函數會處理B1格子的資料,傳回一個答案. 這個答案可以塞在B3,也可以塞在任何位置. 如果在主程式寫 Range("B3").Value = 去零值() 就是把去零值結果放在B3格子. 這是其中一種可能作法. -- 當初boss創立公司,公司什麼也沒有,百業待興.Boss說,要有責任制,就有責任制.Boss覺得 責任制不錯,能把紅黑分得清楚.有打卡,有加班,這是第一天. 上班記,1:1-5 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.160.210.234