当我尝试运行这些命令时遇到问题。问题来自公式表达式,因为"_"
是语法错误,但是我在Excel单元格中确实需要该公式,
我怎么解决呢?
Sub Prueba_Fernando()
Application.ScreenUpdating = False
Range("B:B").Columns.Insert
Range("B1").FormulaLocal = "=EXTRAE(A1;HALLAR("_";A1;2)+1;LARGO(A1)-HALLAR("_";A1;1))"
Set h1 = Sheets("Hoja1")
h1.Range("B1").Copy
For Each h In Sheets
u = h.Range("A" & Rows.Count).End(xlUp).Row
h1.Range("B2:B" & u).PasteSpecial xlAll
Next
MsgBox "Fórmulas aplicadas"
Dim xColIndex As Integer
Dim xRowIndex As Integer
xIndex = Application.ActiveCell.Column
xRowIndex = Application.ActiveSheet.Cells(Rows.Count, xIndex).End(xlUp).Row
Range(Cells(3, xIndex), Cells(xRowIndex, xIndex)).Copy
Application.ScreenUpdating = True
MsgBox "Información copiada a Portapapeles"
End Sub
答案 0 :(得分:2)
是的,问题出在公式上。
它是由"
引起的,当您想在字符串中进行双倍输入时,需要将其加倍,否则它将被解释为字符串的结尾,因此会出错。
使用此行:
Range("B1").FormulaLocal = "=EXTRAE(A1;HALLAR(""_"";A1;2)+1;LARGO(A1)-HALLAR(""_"";A1;1))"