2016-05-05 2 views
1

Я пытаюсь изменить значения ячеек с помощью макроса excel.Изменение значения ячейки с помощью макроса

Например, изменение этой группе:

Codes: 
CareBears 
Catpaws 
CareBears 
Catpaws 
CareBears 
Doghound 
Catpaws 
Doghound 

в:

Codes: 
Bear 
Cat 
Bear 
Cat 
Bear 
Dog 
Cat 
Dog 

я успешно преобразовал их автоматически с помощью записи макросов, но когда данные переключает положение или имеется дополнительная строка данных, что данные не были прочитаны.

Я ищу вашу помощь относительно этого вопроса.

+1

Просьба указать код, который вы используете. –

+0

И тогда попробуйте сами, если обновление диапазонов до новых желаемых значений решит вашу проблему. – Leviathan

+1

В соответствии с тем, что сказал человек, отредактируйте исходный вопрос и вставьте его в свой макрос. –

ответ

0

enter image description here

Если вам не нужно заменить значения, и только каждый приходится иметь дело с медведями, кошками и собаками можно добавить формулу в столбце B, если ваши коды находятся в столбце A. Ее не довольно, но он работает.

Поместите это в В2 и скопировать вниз, с кодами в столбце A.

= IF (NOT (ISERROR (ПОИСК ("Медведь", A2,1))), "Медведь", IF (NOT (ISERROR (SEARCH ("Собака", A2,1))), "Собака", ЕСЛИ (НЕ (ISERROR (SEARCH ("Cat", A2,1))), "Кошка", "?")))

Я ценю, что это не отвечает на вопрос «макросъемки». И не пытайтесь использовать это, если у вас есть значения, такие как DogBear ;-)

0
Sub FindAndExecute() 
'got the answer working with this help http://stackoverflow.com/questions/19504858/find-all-matches-in-workbook-using-excel-vba 
    Dim Sh As Worksheet 
    Dim Loc As Range 
    Dim Loc1 As Range 
    Dim Loc2 As Range 

    For Each Sh In ThisWorkbook.Worksheets 
     With Sh.UsedRange 
      Set Loc = .Cells.Find(What:="Carebears") 
      If Not Loc Is Nothing Then 
       Do Until Loc Is Nothing 
        Loc.Value = "Bear" 
        Set Loc = .FindNext(Loc) 
       Loop 
      End If 

      Set Loc1 = .Cells.Find(What:="Catpaws") 
      If Not Loc1 Is Nothing Then 
       Do Until Loc1 Is Nothing 
        Loc1.Value = "Cat" 
        Set Loc1 = .FindNext(Loc1) 
       Loop 
      End If 
      Set Loc2 = .Cells.Find(What:="Doghound") 
      If Not Loc2 Is Nothing Then 
       Do Until Loc2 Is Nothing 
        Loc2.Value = "Dog" 
        Set Loc2 = .FindNext(Loc2) 
       Loop 
      End If 

     End With 
     Set Loc = Nothing 
     Set Loc1 = Nothing 
     Set Loc2 = Nothing 
    Next 

End Sub