Modificar contenidor de todas las celdas mediante VBA
Publicado por Daniel (3 intervenciones) el 31/07/2023 16:27:10
Hola,
me gustaría poder modificar el contenido de todas las celdas de una tabla (y, mediante bucle, de todas las tablas de un documento) mediante Visual Basic. Las tablas que tengo utilizan codificación UNICODE. He estado probando con este trozo de código, pero siempre me asigna el mismo valor:
Es decir, mi idea es guardar en "valor_celda" el valor ascii (númerico) de la celda, sumarle 10 y volvérselo a asignar a la celda. En cambio, el bucle siempre asigna a "valor_celda" el valor 63 (lo he revisado con la "Ventana Inmediato" dentro de la cinta de opciones "Programador", ejecutando el código paso a paso con F8.
Lo que me gustaría es que cada celda acualizara su valor al que tenía más un cierto "desvío", por ejemplo, de 10.
Gracias.
me gustaría poder modificar el contenido de todas las celdas de una tabla (y, mediante bucle, de todas las tablas de un documento) mediante Visual Basic. Las tablas que tengo utilizan codificación UNICODE. He estado probando con este trozo de código, pero siempre me asigna el mismo valor:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Sub TableCycling()
Dim oTable As Table
Dim oRow As Row
Dim oCell As Cell
Dim valor_celda As Long
For Each oTable In ActiveDocument.Tables
For Each oRow In oTable.Rows ' outher loop goes through rows
For Each oCell In oRow.Cells 'inner loop goes
valor_celda = Asc(oCell.Range.Text)
valor_celda = valor_celda + Int(10)
If valor_celda > 255 Then
valor_celda = 32 + Int((25) * Rnd + 1)
End If
oCell.Range.Text = Chr(valor_celda)
Next oCell
Next oRow
Next oTable
End Sub
Es decir, mi idea es guardar en "valor_celda" el valor ascii (númerico) de la celda, sumarle 10 y volvérselo a asignar a la celda. En cambio, el bucle siempre asigna a "valor_celda" el valor 63 (lo he revisado con la "Ventana Inmediato" dentro de la cinta de opciones "Programador", ejecutando el código paso a paso con F8.
Lo que me gustaría es que cada celda acualizara su valor al que tenía más un cierto "desvío", por ejemplo, de 10.
Gracias.
Valora esta pregunta
0