Как заменить конкретный символ в столбце A на значения в столбце B в Excel?
Я работаю в Excel. Приведенный ниже код состоит из 4 строк в столбце A. В столбце B I есть серия целых чисел, начиная с 0. Я хотел бы, чтобы значения в столбце B заменяли "?" в столбце А. Я искал в Google расширенные методы копирования и вставки, поиска и замены в Excel, но результаты только что сказали мне использовать специальную вставку. Я попытался сослаться на столбец B в инструменте "Найти и заменить", но не смог этого сделать. Любая помощь будет принята с благодарностью.
"<class type=""sItemManager::cITEM_PARAM_DATA"">
<s16 name=""data.mNum"" value=""900""/>
<s16 name=""data.mItemNo"" value=""?""/>
<u32 name=""data.mFlag"" value=""1""/>
<u16 name=""data.mChgNum"" value=""0""/>
<u16 name=""data.mDay1"" value=""0""/>
<u16 name=""data.mDay2"" value=""0""/>
<u16 name=""data.mDay3"" value=""0""/>
<s8 name=""data.mMutationPool"" value=""0""/>
<s8 name=""data.mOwnerId"" value=""4""/>
<u32 name=""data.mKey"" value=""0""/>
</class>"
"<class type=""sItemManager::cITEM_PARAM_DATA"">
<s16 name=""data.mNum"" value=""900""/>
<s16 name=""data.mItemNo"" value=""?""/>
<u32 name=""data.mFlag"" value=""1""/>
<u16 name=""data.mChgNum"" value=""0""/>
<u16 name=""data.mDay1"" value=""0""/>
<u16 name=""data.mDay2"" value=""0""/>
<u16 name=""data.mDay3"" value=""0""/>
<s8 name=""data.mMutationPool"" value=""0""/>
<s8 name=""data.mOwnerId"" value=""4""/>
<u32 name=""data.mKey"" value=""0""/>
</class>"
"<class type=""sItemManager::cITEM_PARAM_DATA"">
<s16 name=""data.mNum"" value=""900""/>
<s16 name=""data.mItemNo"" value=""?""/>
<u32 name=""data.mFlag"" value=""1""/>
<u16 name=""data.mChgNum"" value=""0""/>
<u16 name=""data.mDay1"" value=""0""/>
<u16 name=""data.mDay2"" value=""0""/>
<u16 name=""data.mDay3"" value=""0""/>
<s8 name=""data.mMutationPool"" value=""0""/>
<s8 name=""data.mOwnerId"" value=""4""/>
<u32 name=""data.mKey"" value=""0""/>
</class>"
"<class type=""sItemManager::cITEM_PARAM_DATA"">
<s16 name=""data.mNum"" value=""900""/>
<s16 name=""data.mItemNo"" value=""?""/>
<u32 name=""data.mFlag"" value=""1""/>
<u16 name=""data.mChgNum"" value=""0""/>
<u16 name=""data.mDay1"" value=""0""/>
<u16 name=""data.mDay2"" value=""0""/>
<u16 name=""data.mDay3"" value=""0""/>
<s8 name=""data.mMutationPool"" value=""0""/>
<s8 name=""data.mOwnerId"" value=""4""/>
<u32 name=""data.mKey"" value=""0""/>
</class>"
1 ответ
Решение
Попробуйте следующее (вы можете удалить некоторые переменные, которые были включены в целях отладки):
Sub test()
Dim rng As Range, cl As Range
Set rng = Range("A1:A4")
Dim cl1 As Range, cl2 As Range
For Each cl1 In rng
Set cl2 = cl1.Offset(0, 1)
Dim ival As Integer
ival = cl2.Value
Dim res As String
res = Application.WorksheetFunction.Substitute(cl1.Text, "?", Trim(Str(ival)))
cl1 = res
Next cl1
End Sub
или это
Sub test()
Dim rng As Range, cl As Range
Set rng = Range("A1:A4")
Dim cl1 As Range, cl2 As Range
For Each cl1 In rng
Set cl2 = cl1.Offset(0, 1)
Dim ival As Integer
ival = cl2.Value
cl1.Replace What:="~?", Replacement:=Str(ival)
Next cl1
End Sub