我有一个带有“索引”工作表/工作表的工作簿,该工作簿维护工作簿中跟踪的所有项目的列表。每个项目都有自己的选项卡。我正在尝试使用以下代码以编程方式管理此操作:
Dim template As Worksheet
Dim newSheet As Worksheet
Dim newName As String
newName = Application.InputBox("Enter Project Name") 'get name
Worksheets("P0").Visible = True 'Unhide template
Set template = ActiveWorkbook.Sheets("P0") 'identify template
template.Copy After:=Sheets(Sheets.Count) 'create copy
Set newSheet = ActiveSheet 'identify new sheet
newSheet.Name = newName 'rename sheet
'deleteNames (newSheet.Name) 'delete copied named ranges with worksheet scope
newSheet.Range("C5").Value = newName 'Change header on new sheet
Worksheets("P0").Visible = False 'Hide template
Worksheets("Dashboard").Activate 'switch back to dashboard
Dim Tbl As ListObject
Dim StrFormula1, StrFormula2 As String
Dim NewRow As ListRow
StrFormula1 = "=HYPERLINK(""#'" & newName & "'!A1"",'" & newName & "'!C5)"
StrFormula2 = "='" & newName & "'!C18"
Set Tbl = Range("tblProjects").ListObject
Set NewRow = Tbl.ListRows.Add(AlwaysInsert:=True)
NewRow.Range = Array(StrFormula1, StrFormula2)
问题是最后一行。它第一次很棒。它使用如下公式创建一个新行:
=HYPERLINK("#'Test Project'!A1",'Test Project'!C5)
但是当我添加第二行时,它会改变前一行:
=HYPERLINK("#'Another Project'!A1",'Another Project'!C4)
它应该我希望它仍然引用单元格C5。有人说我可以“将一个常量输入到列的一个单元格中。现在更改列中另一个单元格中的公式。将第一个单元格更改回原始公式。”但我希望有一个更清洁的解决方案。是否有设置或某些东西来禁用此行为?
我需要(希望)它成为一个表,这样我就可以轻松地排序和过滤并最终添加删除项目或以其他方式操作表的功能。
答案 0 :(得分:0)