VBA可以删除多张纸上的同一单元格内容的一部分

时间:2018-11-01 18:04:57

标签: excel vba

我需要删除整个工作簿中多个工作表上的公式的前半部分。每张纸上四个特定的单元格(F308,F315,F322,F329)只需要删除公式的第一部分即可。

公式为:='Project Input-John1'!$ D $ 954 *'Project Input-John1'!$ D $ 952

这里的主要问题是每张纸上的每个单元格公式,尽管极为相似,但有所不同。所引用的每个工作表在每个工作表上都不同,并且每个引用单元在每个单元中都不同。

我不想更改唯一的第二部分,只需删除第一部分:“ Project Input-John1”!$ D $ 954 *。或*(包括)之前的所有内容。

是否可以创建工作簿公式来执行此操作,而我只需要运行一次即可?如果没有,是否可以使用“ This sheet”之类的标准参考纸逐页进行处理?谢谢!

编辑: 我试图记录一个宏,但是它应用了我记录它的单元格中公式的最后一部分

我尝试了这个VBA:

Sub test()
tx = Split(Cells(6, 315), "4")
For i = LBound(tx) To UBound(tx)
Cells(1, 2) = tx(i)
Next
End Sub

这:

Dim ichar As Integer ichar = InStr(1, cl.Value, afterString, vbTextCompare) 
cl = Left(cl.Value, ichar + Len(afterString) -1) 
End Sub 

Sub test() Call removetextbefore("*", Sheet11.Cell(f308)) 
End Sub

我遇到了编译错误

我正在尝试查找有效的代码并搜索过站点,但是似乎没有任何效果。

1 个答案:

答案 0 :(得分:0)

您可以使用Split方法执行以下操作:

Sub editFormulas()
    Dim R As Range
    Dim WS As Worksheet

For Each WS In ThisWorkbook.Worksheets
With WS
    For Each R In Union(.Cells(308, 6), .Cells(315, 6), .Cells(322, 6), .Cells(329, 6))
        R.Formula = "=" & Split(R.Formula, "*")(1)
    Next R
End With
Next WS

End Sub