2013-05-22 120 views
4

当我在visual basic中使用下面显示的代码时,HYPERLINK部件出现在工作表中的公式bar中。我只想让"TextHere"显示在配方栏中。在公式栏中隐藏公式

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

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

回答

14

如何隐藏公式栏
公式让我展示隐藏式两种方式从公式栏


一号。

要隐藏公式栏中的公式,你必须设置HiddenFormula property the Range objectTrue
而工作表保护
它只会工作,所以这里是:
- >选择所有单元格并解锁它们以供编辑
- >选择要隐藏公式并将它们锁定的单元格
- >保护表格

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

选择单元格要隐藏公式并将其锁定
- >选择A1,点击右键,进入Protection选项卡,选择LockedHidden hide formulas

保护片
- >点击Review吨AB,然后Protect Sheet和OK(无需密码)
protect sheet

现在请注意,您还可以编辑任何单元格除了A1。看看公式栏 - 没有公式!它的隐藏!
done


这是一个 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 

NO 2。

随着新的电子表格中一个新的VBEALT + F11Module插入该代码。从View Macros窗口(ALT + F8

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

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

执行之后执行Main宏看看片材范围A1A2
A1被选中和你看式你可以看到公式=1+1,
然而,当你选择A2即使你已经在单元格中输入公式,它已经是evaluated隐藏所以现在它显示的评估值(如何的酷!)
evaluated

同样的原理,当你拉从一个封闭的工作簿值适用于例如

Sub PullValueFromAClosedWorkbooksRange() 
    With Range("A1") 
     .Formula = "='C:\Users\admin\Desktop\[temp.xlsm]Sheet1'!A1" 
     .Value = .Value 
    End With 
End Sub 
+0

特殊答案 –