salto reemplazar por linea codigo celda automatico excel-vba macros

excel-vba - reemplazar - salto de linea en excel formula



Agregue saltos de lĂ­nea en la celda a 1000 filas de datos (3)

Actualmente estoy usando el siguiente código para agregar un salto de línea a los datos de celda en la columna C y copiarlo a la columna K. Necesito aplicar saltos de línea a un rango de datos. Tengo 1000 filas de datos en la columna C. Cualquier ayuda será muy apreciada.

Sub Macro Dim Stem As Variant Stem = ThisWorkbook.Worksheets ("Sheet1").Range("C2") Range ("K2").Select Range("K2").FormulaR1C1 = Stem & Chr(10) & "" End Sub

Gracias


Gracias a todos por sus respuestas. El atlas pudo escribir mi primer guión y obtuvo el código para agregar un salto de línea dentro de la celda.

Sub AddLineBreak() Dim Stem As Variant Stem = ThisWorkbook.Worksheets("Sheet1").Range("C2") Dim i As Integer i = 2 ''this will terminate the loop if an empty cell occurs in the middle of data Do While Cells(i, "C").Value <> "" Cells(i, "K").Value = Cells(i, "C").Value & vbCrLf i = i + 1 Loop End Sub


Prueba esto:

Sub copyAndNewLine() ''copy column C to K Columns("C").Copy Destination:=Columns("K") ''loop through all cells in K and add new line For i = 2 To Cells(Rows.Count, "K").End(xlUp).Row Cells(i, "K").Value = Cells(i, "K").Value & vbCrLf Next i End Sub


Un par de cosas:

  • Mejor atar sus variables temprano que tarde (mejor administración de la memoria, aprovechar intellisense, etc.)
  • Por lo general, las mejores prácticas para evitar el uso de "seleccionar" si es posible.
  • Su variable Stem es un objeto (Range Object) y por lo tanto necesita ser "Set"

Prueba esto:

Sub Macro Dim WS As Worksheet Dim Stem As Range Dim R2 As Range Dim Rng as Range Set WS = ActiveWorkbook.Sheets("Sheet1") Set Stem = WS.Range("C2", Cells(WS.Range("C2").End(xlDown).Row, WS.Range("C2").Column)) Set R2 = WS.Range("K2", Cells(Stem.End(xlDown).Row, WS.Range("K2").Column)) R2.Value = Stem.Value ''New Code For Each Rng In R2 Rng.Value = Rng.Value & Chr(10) & "" Next Rng ''Old Code: R2.End(xlDown) = R2.End(xlDown) & Chr(10) & "" End Sub

Lo que hace esto es establecer primero la hoja de trabajo que está usando. Luego, establece su rango de trabajo (Stem) con el formato Range (cell1, cell2). Cell1 I definido como "C2". La siguiente expresión está usando la función Cells (). Es el equivalente VBA de estar en "C2" y presionar Ctl + Abajo, luego ver en qué fila estás.

Luego, configuré su rango de destino, R2, de una manera similar, pero utilicé el rango de Stem para determinar qué tan grande debería ser.

Finalmente, para obtener una copia precisa, su rango de destino debe ser del mismo tamaño que su rango. La expresión .value to .value pega los datos. Luego, sus caracteres adicionales se agregan a su nuevo campo de datos.

Algo para tener en cuenta con .End (xlDown) ... si tiene filas en blanco en medio de sus datos, se detendrá allí, no irá hasta el final. ¡Espero que esto ayude!

EDITAR: El bucle For Each recorrerá cada rango (es decir, celda) en su rango de destino, R2, y agregará sus nuevos caracteres. Espero que te quede mejor.