2015-09-07 71 views
0

早上好,如何將突出顯示的單元格值發送到另一列中的另一個單元格?

我做了一個宏,突出顯示用戶輸入的單元格值,基本上它突出顯示了來自列G,I和J的值。來自列G的值的值爲列I或J有,但他們不是爲了。我想讓我的宏做的是匹配已經突出顯示的這些值,並將它們移到列H,例如,如果G3具有與I5相同的值,請將值從I5移至H3。

Public Sub series() 
    'Definición de variables (Definition of variables) 
    Dim rango As String, valor As String, resultado As Range 
    Dim primerResultado As String, cont As Integer 

    'Solicitar información al usuario (Get information from the user) 
    rango = "A1:XFD1048576" 
    valor = InputBox("Ingresa el VALOR a buscar:") 
    If valor = "" Then Exit Sub 

    cont = 0 'Inicializar contador de coincidencias (Initialize Find) 

    'Primera búsqueda del valor dentro del rango (First search for value in the range) 
    Set resultado = Range(rango).Find(What:=valor, _ 
        LookIn:=xlValues, _ 
        LookAt:=xlWhole, _ 
        SearchOrder:=xlByRows, _ 
        SearchDirection:=xlNext, _ 
        MatchCase:=False, _ 
        SearchFormat:=False) 

    If Not resultado Is Nothing Then 'Si el resultado de la búsqueda no es vacío 
     primerResultado = resultado.Address 
     Do        'Inicia bucle para hacer varias búsquedas 
      If MsgBox("Resaltar Valor?", vbYesNo) = vbYes Then 
       cont = cont + 1 
       resultado.Interior.ColorIndex = 4 'Cambia el color de fondo de la celda 

      End If 
      Set resultado = Range(rango).FindNext(resultado) 'Vuelve a buscar el valor 



      ' Display a simple message box. 


     Loop While Not resultado Is Nothing And resultado.Address <> primerResultado 
      MsgBox ("Valores Encontrados: " & cont) 
    Else 
     MsgBox "Se encontraron " & cont & " coincidencias." 
    End If End Sub 
+0

什麼是不爲你工作:

值可以很容易地通過添加代碼,你行後感動? – xidgel

回答

0

如果G3的值與I5的值相同,則將值從I5移到H3。

你的要求很奇怪。

您已經編寫了突出顯示單元格的代碼。

你實際上說的是,以及高度你想移動它們的細胞。

但是,您是否確實想要移動該值(因此它不再位於原始單元格中)?如果不是,那麼您可以簡單地將公式添加到希望將值複製到的單元格中。

如果您確實希望VBA移動該值,則需要添加用於在應用顏色後移動該值的代碼。

If Not resultado Is Nothing Then 

添加以下代碼

Dim G as integer, H as integer, I as integer 
    ' note 7 represents the 7th column ie G 

    colG = 7 
    colH = 8 
    colI = 9 

    if cells(resultado.row,colG) = cells(resultado.row,colI) then 

     ' OPTION 1   
     ' if value in column G has the same value that in column I 
     ' move the value from column I to column H 
     cells(resultado.row,colH) = cells(resultado.row,colI) 
     resultado.value = "" 

     ' OPTION 2   
     ' if G3 has the same value that I5, move the value from I5 to H3. 
     ' Note the use of -2 
     cells(resultado.row,colH) = cells(resultado.row,colI-2) 

     ' now clear teh source cell 
     resultado.value = "" 


    end if 
+0

colG = 7 colH = 8 colI = 9 這些值不取列,它們取行。有沒有其他方法可以引用列?謝謝你的幫助! –

+0

抱歉。我已經改變了這個:cells(colG,resultado.row)是這樣的:cells(resultado.row,colG) – HarveyFrench

+0

嗨哈維,這個宏只適用於值在列I中的同一行,有沒有辦法搜索所有列I中的所有值,然後將其與列G中的值進行匹配?在這之後,將列I中的值移到列H中的相同值旁邊。例如,如果$ 650在G:3中並且$ 650在I:7中,則將$ 650從I:7移到H:3旁邊G:3的650美元。 –

相關問題