Как заменить конкретный символ в столбце 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
Другие вопросы по тегам