Excel怎樣用VBA提取中文字元

2022-03-28 13:38:37 字數 5652 閱讀 5788

1樓:匿名使用者

'gb2312範圍: 0xa1a1 - 0xfefe

'gbk範圍: 0x8140 - 0xfefe

public function hibyte(byval word as integer) as byte

end function

public function lobyte(byval word as integer) as byte

lobyte = word and &hff

end function

'按gb2312提取中文字元

function tiqu(str as string)

dim i as integer

dim nasc as integer

dim bythigh as byte

dim bytlow as byte

dim strchar as string

dim strtemp as string

for i = 1 to len(str)

strchar = mid(str, i, 1)

nasc = asc(strchar)

bytlow = lobyte(nasc)

bythigh = hibyte(nasc)

if bytlow >= &ha1 and bythigh >= &ha1 then

strtemp = strtemp & strchar

end if

next

tiqu = strtemp

end function

'例sub example1()

msgbox tiqu("d中f國l;a世sjd界f;a")

end sub

2樓:_forever_允兒

用正規表示式 [/u4e00-/u9fa5]

excel用vba提取字串

3樓:築夢

可以使用函式提取一個字串中的一段字元。 mid 用來返回文字字串中從指定位置開始的特定數目的字元,該數目由使用者指定, 函式 mid 始終將每個字元。

應該用到三個字串函式:left、right、midleft函式用法:left(要提取字元所在單元格,從左側開始提取的個數)。

right函式用法:right(要提取字元所在單元格,從右側開始提取的個數)。

mid函式用法:mid(要提取字元所在單元格,開始位置,提取個數)。

4樓:匿名使用者

mid(源字串,起始位號x,提取長度m);返回第x位起m個字元。要求:起始位號+提取長度<=源字串長度+1

left(源字串,左側擷取長度x);返回左側x個字元right(源字串,右側擷取長度y);返回右側y個字元instr(源字串,待查詢子字串u);返回子字串首字元在源字串中的起始位號

chr(65);返回字母a

......

5樓:匿名使用者

提取怎麼樣的字串,儲存到**?請描述清楚。

excel 用vba 提取字串

6樓:綠衣人敲門

可以使用函式提取一個字串中的一段字元。

mid 用來返回文字字串中從指定位置開始的特定數目的字元,該數目由使用者指定。

函式 mid 始終將每個字元(不管是單位元組還是雙位元組)按 1 計數。

語法:mid(text, start_num, num_chars)

引數:mid函式語法具有下列引數:

text 必需。包含要提取字元的文字字串。

start_num 必需。文字中要提取的第一個字元的位置。文字中第一個字元的 start_num 為 1,依此類推。

num_chars 必需。指定希望 mid 從文字中返回字元的個數。

說明:如果 start_num 大於文字長度,則 mid 返回空文字 ("")。

如果 start_num 小於文字長度,但 start_num 加上 num_chars 超過了文字的長度,則 mid 只返回至多直到文字末尾的字元。

如果 start_num 小於 1,則 mid 返回錯誤值 #value!。

如果 num_chars 是負數,則 mid 返回錯誤值 #value!。

如果 num_bytes 是負數,則 midb 返回錯誤值 #value!。

示例:資料 "fluid flow " 假設在a1單元格。

=mid(a2,1,5) 上面字串中的 5 個字元,從第一個字元開始 (fluid) 。

=mid(a2,7,20) 上面字串中的 20 個字元,從第七個字元開始 (flow) 。

=mid(a2,20,5) 因為要提取的第一個字元的位置大於字串的長度,所以返回空文字 ()。

7樓:匿名使用者

直接用excel裡面的「分列」就可以了,因為都有一個「=」。

或是用函式解決,mid(a1,find("=",a1)+1,,len(a1)-find("=",a1)

如果用vba的,

mid(cells(1,1).value,instr(「=」,cells(1,1).value)+1,len(cells(1,1).

value)-instr(「=",cells(1,1).value))

就可以了,好久不用vba了,有點記不清instr(cells(1,1).value)要不要value

8樓:匿名使用者

sub test()

dim t as string, i as integer, at = cells(1, 1).valuea = split(t, "base&")(0)

next

end sub

9樓:孫晶

切圖,需要看看a列資料的規律性。如果沒有規律是沒發迴圈提取的

excel怎麼用vba提取字串?

10樓:築夢

可以使用函式提取一個字串中的一段字元。 mid 用來返回文字字串中從指定位置開始的特定數目的字元,該數目由使用者指定, 函式 mid 始終將每個字元。

應該用到三個字串函式:left、right、midleft函式用法:left(要提取字元所在單元格,從左側開始提取的個數)。

right函式用法:right(要提取字元所在單元格,從右側開始提取的個數)。

mid函式用法:mid(要提取字元所在單元格,開始位置,提取個數)。

excel中vba提取字串問題 10

11樓:匿名使用者

這個用正則是沒法寫的,只能把市級的名稱做成一個陣列,然後逐個匹配查詢,用instr

例如:陣列a(1 to 100)存放地級市的名稱,例如 青島,煙臺等for 1=1 to 100

if instr(dizh,a(i))>0 thenxx=a(i)

exit for

end if

next i

12樓:ez我本命

mid(源字串,起始位號x,提取長度m);返回第x位起m個字元。要求:起始位號+提取長度<=源字串長度+1

left(源字串,左側擷取長度x);返回左側x個字元right(源字串,右側擷取長度y);返回右側y個字元instr(源字串,待查詢子字串u);返回子字串首字元在源字串中的起始位號

chr(65);返回字母a

......

13樓:綠衣人敲門

可以使用函式提取一個字串中的一段字元。

mid 用來返回文字字串中從指定位置開始的特定數目的字元,該數目由使用者指定。

函式 mid 始終將每個字元(不管是單位元組還是雙位元組)按 1 計數。

語法:mid(text, start_num, num_chars)

引數:mid函式語法具有下列引數:

text 必需。包含要提取字元的文字字串。

start_num 必需。文字中要提取的第一個字元的位置。文字中第一個字元的 start_num 為 1,依此類推。

num_chars 必需。指定希望 mid 從文字中返回字元的個數。

說明:如果 start_num 大於文字長度,則 mid 返回空文字 ("")。

如果 start_num 小於文字長度,但 start_num 加上 num_chars 超過了文字的長度,則 mid 只返回至多直到文字末尾的字元。

如果 start_num 小於 1,則 mid 返回錯誤值 #value!。

如果 num_chars 是負數,則 mid 返回錯誤值 #value!。

如果 num_bytes 是負數,則 midb 返回錯誤值 #value!。

示例:資料 "fluid flow " 假設在a1單元格。

=mid(a2,1,5) 上面字串中的 5 個字元,從第一個字元開始 (fluid) 。

=mid(a2,7,20) 上面字串中的 20 個字元,從第七個字元開始 (flow) 。

=mid(a2,20,5) 因為要提取的第一個字元的位置大於字串的長度,所以返回空文字 ()。

excel單元格提取漢字,怎麼用一個函式做到,一下,謝謝

14樓:

有什麼規則嗎?沒看出怎麼提取?

excel公式或函式編寫,取中文字

15樓:匿名使用者

可選用以下幾種方法取中文字(假定需要處理的單元格是a1):

1、文字在前:可用left函式取中文字,公式=left(a1,lenb(a1)-len(a1)) 其中lenb(a1)-len(a1)計算左邊中文字長度。

2、中文字在後:可用right函式取中文字,公式=right(a1,lenb(a1)-len(a1)) 其中lenb(a1)-len(a1)計算右邊中文字長度。

3、中文字在中間:用mid函式提取中文字,公式>10000,row(indirect("a1:

按組合鍵ctrl+shift+enter結束公式。其中

>求得漢字的起始位置,lenb(a1)-len(a1)計算中間中文字長度。

16樓:戎冬易紀奧

截圖請截出行號和列標,以方便書寫公式

在單元格中輸入以下公式

=sumif(進貨!a:a,a2,進貨!c:c)

17樓:匿名使用者

我發現你的文字前都有一個雙引號,如果都是你舉例子的這種格式,那有一個最簡單的辦法,用分列,

選中a列,點資料,分列,分隔符,其他後面填入引號下一步下一步完成。就可以把最後邊的文字分到b列中去了。

引號不一樣可以用替換解決:)

用VBA實現提取字元

sub kk dim i as integer for i 2 to 1000 cells i,3 mid cells i,2 1,13 next end sub 在工作頁面 例如 sheet1 內加個 命令按鈕 其 如下 private sub commandbutton1 click macro...

怎樣用Excel快速編號,Excel中怎麼自動編號及序號自動填充

準備工具 材料 裝有windows 10的電腦一臺,microsoft office 家庭和學生版 2016 excel軟體。1 生成一個excel。2 在第四排插入一排。3 生成一個空白,填入姓氏,劉 4 然後在前面兩個輸入數字 1 2 用箭頭拉成一大個,如圖所示。5 往下拉到最後,就自動快速編號...

excel中怎樣用if公式計算提成

a1為業績,b1計算提成,b1輸入公式 一,用if函式 a1 if a1 40000,if a1 80000,1 if a1 120000,2 if a1 180000,2.5 if a1 240000,3 3.5 二,用lookup函式更靈活 a1 lookup a1,請說清楚些,1 4萬提1 是...