首页 文章

将宏公式应用于Excel公式

提问于
浏览
0

感谢您抽出宝贵时间阅读我的查询 .

将公式应用于我的Excel工作表时遇到问题 . 我目前正在使用宏将几张纸合并为一张 . 它非常粗糙,但它完成了这项工作 .

Sub Combine()
    Application.DisplayAlerts = False
    Sheets("Combined").Delete
    Application.DisplayAlerts = True

    Dim J As Integer

    On Error Resume Next

    Sheets(1).Select
    Worksheets.Add
    Sheets(1).Name = "Combined"
    Sheets(2).Activate
    Range("A1").EntireRow.Select
    Selection.Copy Destination:=Sheets(1).Range("A1")

    For J = 3 To 6
        Sheets(J).Activate
        Range("A1").Select
        Selection.CurrentRegion.Select
        Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
        Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
        Sheets("Combined").Visible = False
    Next
End Sub

这给了我一个特定的页面,我需要从中绘制信息 . 我将它绑在按钮上,以便将来轻松访问 . 我目前正在努力应用一个从上述“组合”表中提取信息的公式 . 在代码开头删除工作表时,我正在使用的公式丢失了 .

=IF(ISNUMBER(SEARCH("_",Combined!A2)),LEFT(Combined!A2,(FIND("_",Combined!A2,1)-1)))

所以我尝试将它应用到宏 . 但正如你可以看到那里有一个下划线,VBA对它有一个非常具体的解释 . 有解决方法吗?

Sub Place_formula()
'trying to place the formulae once again
Range("F2").Formula = 
"=IF(ISNUMBER(SEARCH("_",Combined!A2)),LEFT(Combined!A2,
(FIND("_",Combined!A2,1)-1)))"
End Sub

如果我设法做到这一点,我将很容易找到一种方法将其复制到需要的地方 .

1 回答

  • 1

    您必须在VBA中加倍报价

    Range("F2").Formula = "=IF(ISNUMBER(SEARCH(""_"",Combined!A2)),LEFT(Combined!A2,(FIND(""_"",Combined!A2,1)-1)))"
    

    还建议修改主代码以避免选择,并使用一些工作表变量使其更容易引用相关表格 .

    Sub Combine()
    
    Application.DisplayAlerts = False
    workSheets("Combined").Delete
    Application.DisplayAlerts = True
    
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim J As Long
    
    Set ws1 = Sheets(1)
    Set ws2 = Worksheets.Add(before:=ws1)
    ws2.Name = "Combined"
    ws1.Range("A1").EntireRow.Copy Destination:=ws2.Range("A1")
    
    For J = 3 To 6
        With workSheets(J).Range("A1").CurrentRegion
            .Offset(1, 0).Resize(.Rows.Count - 1).Copy Destination:=ws2.Range("A" & Rows.Count).End(xlUp)(2)
        End With
    Next
    ws2.visible = False
    
    End Sub
    

相关问题