を使用して文字列の列を解析、セルのそれぞれには、以下が含まれています私はエクセルVBAで文字列のセル列を解析したいVBA
答えて
フォーマットについては、 '(アポストロフィ)&の前の文字列を見つけてください。 この値を持つセルにいると仮定して、次のVBAコードを使用します。
activecell.text = mid(activecell.text, 1, instr(1, activecell.Text, "'")-1)
それはアポストロフィを探し、それ&は現在のセルにそれを置く前に、文字を抽出します。
アポストロフィの前の数字が2の代わりに2000または200の場合はどうなりますか?ミドルファンクションの2番目のパラメータを返す文字数をより柔軟にするにはどうすればよいですか? – stanigator
そのような場合は問題ではありません。コードはアポストロフィを探し、最初の文字から始まるすべての文字を返します。 – shahkalpesh
ありがとうございます。私はそれをとにかく使って見つけました。 – stanigator
数値データが常にセルの先頭にあると仮定すると、Regexを使用して文字列の先頭に連続する数字を見つけ、最初の数値以外の文字にヒットすると停止します。ここでは、あなたのためにそれを行う関数です、私はそれが助けてくれることを願っています。 ^はセルの開始を表し、(\ d +)は1つ以上の数字を意味し、。*は0以上の文字が続くことを意味します。私は、あなたが必要とする数字の文字列が1つしかないと仮定しているので、正規表現はサブマッチ0(最初のマッチ)を返します。
Function ExtractNumericData(ByVal text As String) As String
Application.ScreenUpdating = False
Dim allMatches As Object
Dim RE As Object
Set RE = CreateObject("vbscript.regexp")
RE.Pattern = "^(\d+).*"
RE.Global = True
Set allMatches = RE.Execute(text)
ExtractNumericData = allMatches.Item(0).submatches.Item(0)
Application.ScreenUpdating = True
End Function
- 1. VBA文字列配列
http://stackoverflow.com/questions/924717/excel-finding-and-removing-some-characters-in-a-column-of-dataの重複? – barrowc
これは私がbarrowcのスレッドについて以前に尋ねた質問に由来する別個の質問です。 – stanigator