[英]Excel VBA: Not able to paste text contain more than 32676 characters in a cell
[英]Excel cell shall contain required characters
如果您能幫助解決以下問題,我將不勝感激:當外部用戶完成 Excel 中定義的單元格時,他/她可以將預定義的值放入一個單元格中。 就像我想填充“國家”字段一樣,可供我使用的選項是:“莫斯科”或“莫斯科;紐約”。
所以可接受的符號無論如何都是拉丁字母和分號。
如果結果為假(出於某些原因,我在 Country name 后面使用了逗號),則會彈出錯誤消息,例如“此符號不可接受”。
提前感謝您的時間和幫助!
在我看來,OP 只是想阻止輸入某些字符。
這些可能會被檢測到,例如通過一個否定的Like
比較
Dim SearchString As String
SearchString = "Moscow;New-York"
If SearchString Like "*[! ;A-Za-z-]*" Then
MsgBox "Found not accepted symbol."
'... do other stuff
Else
MsgBox "Correct entry."
Endif
通過"*[; ;A-Za-z-]*"
進行模式搜索的提示
Like
運算符與正則表達式中的模式搜索只有一些基本的相似之處,但也可以產生有用的高效代碼。
尤其是“括在括號 ([ ]) 中的一組一個或多個字符 ( charlist ) 可用於匹配字符串中的任何單個字符,並且可以包含幾乎任何字符代碼,包括數字。”
此類 charlist 開頭的感嘆號 (
!
)表示如果在字符串中找到除 charlist 中的字符之外的任何字符,則進行匹配。
訣竅
因此,只找到一個字符就足夠了,而不是想要的字符序列(即空白
, 一個分號;
, AZ
或az
中的字母或連字符-
) 由前綴為!
的否定搜索模式找出任何入侵者(周圍的通配符*
允許在任何位置識別入侵者)。
請注意,我將連字符-
作為模式搜索中的最后一個元素,因為在字符列表中,連字符用於標識一系列字符。 - (與 MS 幫助定位相反-
緊接在!
之后似乎不起作用)
C.f. Ms Help Like 操作員
上面的代碼拆分器並沒有以任何方式假裝是一個完整的解決方案,而是打算給出一個初步的想法。 由提問者在自己的代碼中開發進一步的步驟。
您可以在編輯不需要的特定字符后使用INSTR function檢查單元格。
例如:
If INSTR(1,cellreference,",")<>”0” then 'a comma was found in the cell
msgbox "This symbol is not acceptable"
End if
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.