![](/img/trans.png)
[英]VBA Excel How to populate formula in cells after creation of new sheet
[英]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.