Excel VBA删除同一单元格的一部分';将内容放在多张纸上

Excel VBA删除同一单元格的一部分';将内容放在多张纸上,excel,vba,Excel,Vba,我需要删除工作簿中多张工作表上公式的前半部分。每页四个特定单元格(F308、F315、F322、F329)只需删除公式的第一部分 公式是:='projectinput-John1'$D$954*“项目投入-约翰1”$D$952 这里的主要问题是每张纸上的每个单元格公式,虽然非常相似,但却不同。每页上引用的每页都不同,每个单元格中引用的每个单元格也不同 我不想更改唯一的第二部分,只需删除第一部分:“projectinput-John1”$D 954美元*。或之前的一切(包括)* 在我只需运行一次的

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

公式是:='projectinput-John1'$D$954*“项目投入-约翰1”$D$952

这里的主要问题是每张纸上的每个单元格公式,虽然非常相似,但却不同。每页上引用的每页都不同,每个单元格中引用的每个单元格也不同

我不想更改唯一的第二部分,只需删除第一部分:“projectinput-John1”$D 954美元*。或之前的一切(包括)*

在我只需运行一次的情况下,是否可以创建工作簿公式来执行此操作?如果没有,是否可以使用“本页”这样的标准参考资料逐页进行?谢谢

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

我试过这个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
我有一个编译错误


我正在努力寻找有效的代码,并且已经搜索了网站,但似乎没有任何效果。

您可以使用
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

到目前为止你试过什么?确实有这样的例子不。工作簿公式只能将结果返回到其所在的单元格。它不能改变其他单元格。您可以编写VBA宏,该宏应该能够检查所有工作表上的相关单元格,并根据您需要的任何规则更改公式。如果编写宏后遇到问题,请发回您的问题。@Marcucciboy2我尝试了以下方法:将ichar设置为整数ichar=InStr(1,cl.Value,afterString,vbTextCompare)cl=Left(cl.Value,ichar+Len(afterString)-1)End Sub test()调用removetextbefore(“*”,Sheet11.Cell(f308))最后,我得到了一份文件error@RonRosenfeld-我尝试录制宏,但它将唯一的单元格内容替换为我录制宏的单元格内容。请通过“谢谢”将您的代码添加到您的问题中。我在中添加了这个,得到了一个“运行时错误9:下标超出范围”。我现在正在用有限的信息调查这件事,很难说问题出在哪里。如果引用单元格中的公式不包含
*
,您将收到该消息。或者,由于您编写了“添加了此项”,它可能与此代码无关,而是与您添加它的代码有关。我现在意识到,本书中并非所有的表都有此公式,例如我的摘要和参数表。有没有一种方法可以为我输入代码的表单生成代码?谢谢你在这方面的帮助和耐心@有很多方法可以做到这一点。您可以在
For
循环中检查工作表名称(或
Codename
);您可以检查每个公式是否包含
*
。您可以检查获取
Split(R.Formula,“*”)、1
和我没有提到的其他方法时的错误。