5

当我在 Visual Basic 中使用下面显示的代码时,该HYPERLINK部分出现在工作表中的公式bar中。我只想"TextHere"在编辑栏中显示。

我可以添加哪些附加代码?我试图通过在保护选项卡中更改其属性来隐藏它,但它不允许我再编辑文本。我希望它仍然是编辑友好的。

Sub IndexingSheets()
    Sheets(1).Range("A1").Formula = _
    "=HYPERLINK(""#" & ThisWorkbook.Sheets(2).Name & "!A2"", ""TextHere"")"
End Sub
4

1 回答 1

17

如何从公式栏中
隐藏公式让我演示两种从公式栏中隐藏公式的方法


1号。

要从公式栏中隐藏公式,您必须将对象的HiddenFormula属性Range设置为True
它仅在工作表受到保护
时才有效 所以这里的技巧是:
->选择所有单元格并解锁它们以进行编辑
->选择要隐藏的单元格公式并锁定它们
-> 保护工作表

选择所有单元格并解锁它们以进行编辑
-> 选择所有单元格,右键单击任意位置以格式化单元格。转到Protection选项卡并取消Locked 解锁

选择选择要隐藏公式的单元格并锁定它们
- >选择A1,右键单击,转到Protection选项卡并选择LockedHidden 隐藏公式

保护工作表
- >单击Review选项卡,然后Protect Sheet确定(不需要密码)
保护片

现在注意,您仍然可以编辑除A1之外的任何单元格。看看公式栏 -没有公式!它是隐藏的!
完毕


这是一个VBA解决方案:

Sub HideTheFormula()

    Dim ws As Worksheet
    Set ws = Sheets(1)

    Call IndexingSheets

    Call Setup(ws)
    Call ProtectSheet(ws)
    'Call UnprotectSheet(ws)

End Sub

Sub IndexingSheets()
    Sheets(1).Range("A1").Formula = _
    "=HYPERLINK(""#" & ThisWorkbook.Sheets(2).Name & "!A2"", ""TextHere"")"
End Sub

Sub ProtectSheet(ByRef ws As Worksheet)
    'ws.Protect userinterfaceonly:=True
    ws.Protect
End Sub

Sub UnprotectSheet(ByRef ws As Worksheet)
    ws.Unprotect
End Sub

Sub Setup(ByRef ws As Worksheet)
    With ws.Cells
        .Locked = False
        .FormulaHidden = False
    End With
    ws.Range("A1").Locked = True
    ws.Range("A1").FormulaHidden = True
End Sub

2号。

使用新的电子表格将此代码插入新的VBE( ALT+ F11)Module中。从窗口执行Main宏( + )View MacrosALTF8

Sub Main()
    With Range("A1")
        .Formula = "=1+1"
    End With

    With Range("A2")
        .Formula = "=1+1"
        .Value = .Value
    End With
End Sub

执行后查看工作表范围A1A2
何时A1被选中,然后查看公式栏,您可以看到公式=1+1
但是当您选择时,A2即使您已将公式放入单元格中,它也已被隐藏evaluated,因此现在显示评估值(太酷了!)例如,当您从关闭的工作簿中提取值 时,同样的原则也适用
评估


Sub PullValueFromAClosedWorkbooksRange()
    With Range("A1")
        .Formula = "='C:\Users\admin\Desktop\[temp.xlsm]Sheet1'!A1"
        .Value = .Value
    End With
End Sub
于 2013-05-22T08:22:06.520 回答