以前學java的 沒想到excel也這么博大精深 小弟作業中急求一個VBA自定義函式的例子 希望大俠指點。有興趣可以加我圈圈:89319572 互相幫助。下面是我想實作的功能:
將excel表中一個單元格中的地址的某一部分提取出來 一開始我在單元格上寫的:
=IF(ISERROR(FIND("黃村",I4)),IF(ISERROR(FIND("西紅門",I4)),0,"西紅門"),"黃村鎮")
但是嵌套太多超過一定的數量就報錯了,只好自定義一個函式求這樣一個函式將“北京市大興區黃村鎮孫村村委會南500米”中的“黃村鎮”提取出(向“黃村鎮”這樣的關鍵詞有十多個,可以寫死的),其他編程語言中 應該有一個switch case陳述句 不知道VBA中有沒有,方法要怎么寫另外怎么網會傳值
uj5u.com熱心網友回復:
又不是已經斷詞過的,哪里用得到 Case 分支。而且你搜索(黃村)和回傳(黃村鎮)的關鍵詞還不一樣,數量不多就用 If 分支吧。
Function GetKeyWord(ByVal s As String) As String
Dim sKeyWord As String
If InStr(1, s, "黃村") Then
sKeyWord = "黃村鎮"
ElseIf InStr(1, s, "西紅門") Then
sKeyWord = "西紅門"
Else
sKeyWord = "0"
End If
GetKeyWord = sKeyWord
End Function
uj5u.com熱心網友回復:
s="北京市大興區黃村鎮孫村村委會南500米":? Mid(s,Instr(s,"區")+1,Instr(s,"鎮")-Instr(s,"區"))
uj5u.com熱心網友回復:
這是假設能找到的情況下。
找不到呢?
uj5u.com熱心網友回復:
利用Word分詞:Private Sub Form_Load()
Dim sentence As String
Dim words As String
Dim WordApp As Object
sentence = "北京市大興區黃村鎮孫村村委會南500米"
words = ""
Set WordApp = CreateObject("Word.Application")
WordApp.Documents.Add
WordApp.Selection.TypeText Text:=sentence
WordApp.Selection.HomeKey
Do
WordApp.Selection.MoveRight Unit:=2, Count:=1, Extend:=1
If WordApp.Selection.Text = vbCr Then Exit Do
words = words + WordApp.Selection.Text + vbCrLf
WordApp.Selection.MoveRight Unit:=1, Count:=1
Loop
WordApp.Quit SaveChanges:=0
Set WordApp = Nothing
MsgBox words
End
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/118098.html
標籤:VBA
下一篇:VB的msflexgrid表格控制元件的滾輪滾動后,在頁面上是第四行,實際上它已經是第10行了,我單擊這行將這行資訊顯示在text中,顯示的是滾輪沒滾動前的第四行,
