簡體   English   中英

Excel VBA代碼使用公式鏈接單元格填充摘要表

[英]Excel VBA code to populate summary sheet with formula linking cells

我試圖創建一個摘要表,其中7列中將有46行數據。 因此,我將從46張紙中提取數據,將有7個不同的數據點。

我可以使用偏移功能來簡化此代碼嗎?

Sub AutoFillSheetNames()
    Dim ActRng As Range
    Dim ActWsName As String
    Dim ActAddress As String
    Dim Ws As Worksheet

    On Error Resume Next

    Set ActRng = Application.ActiveCell
    ActWsName = Application.ActiveSheet.Name
    ActAddress = ActRng.Address(False, False)

    Application.ScreenUpdating = False

    xIndex = 0
    For Each Ws In Application.Worksheets
        If Ws.Name <> ActWsName Then
            ActRng.Offset(xIndex, 0).Value = "='" & Ws.Name & "'!" & ActAddress
            xIndex = xIndex + 1
        End If
    Next

    Application.ScreenUpdating = True
End Sub

我想鏈接實際的單元格,以便它們可以自動更新,並且需要VBA,因為它將針對具有不同標簽名的許多不同的excel工作簿完成。 例如,當我將“摘要”表上的單元格F2鏈接到第一張48張紙上的F2,然后正確輸入剩余的47個單元格的公式到F48時,此處發布的代碼將起作用。 但是,當我要將摘要表中的單元格H2鏈接到第一張表中的G7時,我應該在上面的代碼中進行哪些更改?

我真的不明白您要完成什么。 下面的代碼將鏈接“摘要”表中每個工作表第一行中的7個單元格(即A1:G1)。 行將與工作表一樣多。 但是我不知道這是否是您真正想要的。

Sub AutoFillSheetNames()
    Dim CurrWorkBK As Workbook
    Dim CurrSheet As Worksheet
    Dim TheOtherSheets As Worksheet
    Dim MyRow As Long
    Dim MyCol As Long

    Set CurrWorkBK = ThisWorkbook
    Set CurrSheet = CurrWorkBK.Worksheets("Summary")

    MyRow = 1
    For Each TheOtherSheets In CurrWorkBK.Worksheets
        If TheOtherSheets.Name <> CurrSheet.Name Then
            For MyCol = 1 To 7
                CurrSheet.Cells(MyRow, MyCol).Value = "='" & TheOtherSheets.Name & "'!" & TheOtherSheets.Cells(1, MyCol).Address
            Next MyCol
            MyRow = MyRow + 1
        End If
    Next
End Sub

暫無
暫無

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

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