簡體   English   中英

將Excel公式與宏一起應用

[英]Applying an Excel formula with macro

感謝您抽出寶貴時間閱讀我的查詢。

將公式應用於我的一張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 

如果我能夠做到這一點,我將很容易找到一種將其復制到所需位置的方法。

您必須在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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM