[英]How to assign range in a string VBA?
我有一個代碼可以根據另一個單元格中的值突出顯示一個單元格中的單詞。 當我分配FindW = Range("X1")
時,它工作得很好。 但是,當我將范圍 eg: ("X1:X1000")分配給字符串值FindW時,代碼似乎不起作用,我找不到解決此問題的方法。
有人有什么主意嗎?
請參閱下面的代碼:
Dim Rng As Range
Dim FindW As String
Dim xTmp As String
Dim x As Long
Dim m As Long
Dim y As Long
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Übersicht")
Application.ScreenUpdating = False
Application.EnableEvents = False
With ws
FindW = Range("X1:X1000")
y = Len(FindW)
For Each Rng In Range("C:H")
With Rng
m = UBound(Split(Rng.Value, FindW))
If m > 0 Then
xTmp = ""
For x = 0 To m - 1
xTmp = xTmp & Split(Rng.Value, FindW)(x)
.Characters(Start:=Len(xTmp) + 1, Length:=y).Font.ColorIndex = 3
xTmp = xTmp & FindW
Next
End If
End With
Next Rng
End With
End Sub
您不能將多個單元格的Range
值直接放入單個String
變量中。 但是,您可以創建一個String
數組並將每個單元格值單獨存儲在String
數組中。
最簡單的解決方案是只使用Variant
變量,並將范圍值直接放入其中,如下所示:
Dim mrange As Range
Dim mVariant As Variant
mVariant = myRange.Value
如果你真的需要你的變量是一個String
,有多種方法可以做到這一點:
例如,您可以使用以下方法循環遍歷 Array 的每個單元格:
For each mCell in mRange.Cells
mString(i) = mCell.Value
i = i + 1
Next mCell
mRange 是您的范圍,mString 是一個字符串數組。 此解決方案需要您知道范圍內有多少個單元格,因為字符串數組需要定義一個大小。
如果您不知道 Range 的大小,可以添加一個步驟並使用 Variant 變量。
看這里。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.