excel 2010 用VBA批量替换单元格中的公式

事件:按下按钮“2月”结果:替换C列单元格公式中“[出入库报表201501.xlsx]1月“为”[出入库报表201502.xlsx]2月”谢谢各位大神了!这个问题解决的基... 事件:按下按钮“2月”
结果:替换C列单元格公式中“[出入库报表201501.xlsx]1月“为 ”[出入库报表201502.xlsx]2月”

谢谢各位大神了!
这个问题解决的基础上能否逆操作
点击”二月“从一月替换为二月 如果想从二月再点回一月 这样VBA该怎么写?
展开
 我来答
解0人
2015-03-11 · TA获得超过2389个赞
知道大有可为答主
回答量:1474
采纳率:83%
帮助的人:762万
展开全部

直接通过VBA重设公式即可,

1月按钮的单击事件代码:

range("C3:C25").Formula = "=VLOOKUP(B3,......[出入库报表201501.xlsx]1月......)"

2月按钮的单击事件代码:

range("C3:C25").Formula = "=VLOOKUP(B3,......[出入库报表201502.xlsx]2月......)"

公式中的......自己补上。

祝你成功!

K_BEAT
2015-03-11 · TA获得超过1245个赞
知道小有建树答主
回答量:879
采纳率:91%
帮助的人:403万
展开全部

参考代码如下(请确保在工作表中添加的按钮为表单控件,并修改每一个按钮的文字为所要替换的内容):

Public Sub ChangeFormula(ByVal Column As Variant)
    Dim varCaller As Variant
    
    On Error Resume Next
    
    varCaller = Application.Caller
    
    If Err.Number = 0 Then
        Dim strFind     As String
        Dim strReplace  As String
        Dim strMonth    As String
        
        Dim rngColumn   As Range
        Dim rngFormula  As Range
        
        strMonth = ChrW$(&H6708)
        strReplace = "]" & ActiveSheet.Buttons(varCaller).Caption
        strFind = "]??" & strMonth
        
        Set rngColumn = ActiveSheet.Columns(Column)
        Set rngFormula = rngColumn.Find(strFind, , xlFormulas, xlPart)
        
        If rngFormula Is Nothing Then
            strFind = "]?" & strMonth
            
            Set rngFormula = rngColumn.Find(strFind, , xlFormulas, xlPart)
        End If
        
        If Not (rngFormula Is Nothing) Then
            rngColumn.Replace strFind, strReplace
        End If
        
        Set rngFormula = Nothing
        Set rngColumn = Nothing
    End If
End Sub


然后右击按钮选择指定宏并输入宏名:

'ChangeFormula 3'

'ChangeFormula "C"'

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sk432600
2015-03-11 · 知道合伙人软件行家
sk432600
知道合伙人软件行家
采纳数:580 获赞数:2264
毕业于华北水利水电学院,本科学位.cad excel 等办公相关软件操作,现为公司技术员

向TA提问 私信TA
展开全部
录个 查找 替换 的宏试试
追问
录了 在录制完成的宏里找不到查找和替换的语段
追答
Sub 宏1()

Selection.Replace What:="1月", Replacement:="2月", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式