¿Cómo puedo aumentar automáticamente una referencia de celda en Excel VBA para que una macro se ejecuta en cada columna?

Cdurell:

Así que tengo una macro que las células referencias específicas en un libro. ¿Cómo puedo repetir esta macro en los próximos cincuenta columnas sin tener que escribir manualmente las referencias de celda cincuenta veces?

Si yo estaba usando las fórmulas de Excel VBA y no pude hacer clic y arrastrar para repetir automáticamente las fórmulas en la columna siguiente. Las referencias de celda me gustaría seguir siendo el mismo que yo definiría como $ $ referencias absolutas. Pero en VBA no sé cómo hacerlo.

Aquí está el código:

If Worksheets("Enter Data Here").Range("D11") = "" Then
    Worksheets("SDS").Range("R5") = Worksheets("SDS").Range("R5") & ""

ElseIf Worksheets("Enter Data Here").Range("D11") = "/" Then
    Worksheets("SDS").Range("R5") = Worksheets("SDS").Range("R5") & ";" & Worksheets("Enter Data Here").Range("D10")

ElseIf Worksheets("Enter Data Here").Range("D11") = "//" Then
    Worksheets("SDS").Range("R5") = Worksheets("SDS").Range("R5") & ";" & Worksheets("Enter Data Here").Range("D10") & "x2"

ElseIf Worksheets("Enter Data Here").Range("D11") = "///" Then
    Worksheets("SDS").Range("R5") = Worksheets("SDS").Range("R5") & ";" & Worksheets("Enter Data Here").Range("D10") & "x3"


End If

Hojas de trabajo ( "SDS"). Range ( "R5") es la referencia de celda absoluta y no cambia, pero me gustaría los otros para desplazarse a lo largo a la siguiente columna sin escribir. por ejemplo D se convierte en E, entonces F.

Tiene que haber una manera de ahorrar trabajo de hacer esto. Tal bucle?

Salud.

SJR:

Prueba esto.

Sub x()

Dim r1 As Range, i As Long

Set r1 = Worksheets("Enter Data Here").Range("D11") 'define starting cell

For i = 1 To 50 'repeat this 50 times
    With Worksheets("SDS").Range("R5")
        If r1 = "" Then
             .Value = .Value & "" 'not sure what purpose this serves
        ElseIf r1.Value = "/" Then
            .Value = .Value & ";" & r1.Offset(-1).Value
        ElseIf r1.Value = "//" Then
            .Value = .Value & ";" & r1.Offset(-1).Value & "x2"
        ElseIf r1.Value = "///" Then
            .Value = .Value & ";" & r1.Offset(-1).Value & "x3"
        End If
    End With
    Set r1 = r1.Offset(, 1) 'move to cell to the right, E11, F11 etc
Next i

End Sub

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=400127&siteId=1
Recomendado
Clasificación