скрытие формул в строке формул

Когда я использовал в Visual Basic коды, показанные ниже,HYPERLINK часть появляется в формулеbarв рабочем листе. Я просто хочу"TextHere" для отображения в строке формул.

Какие дополнительные коды я могу добавить? Я'мы пытались скрыть его, изменив его свойства на вкладке защиты, но он больше не позволяет мне редактировать текст. Я хотел бы, чтобы это все еще было дружественным к редактированию.

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

Ответы на вопрос(1)

Решение Вопроса

Как скрыть формулу из панели формул

Позвольте мне продемонстрировать два способа скрытия формул из панели формул

No1.

Чтобы скрыть формулу из строки формул, необходимо установитьHiddenFormula собственностьRange объект вTrue

Это будет работать только тогда, когда листзащищенный

Итактрюк вот это: ->

 выбрать все ячейки и разблокировать их для редактирования->

 выделите ячейки, от которых хотите скрыть формулы, и заблокируйте их ->

 защитить лист

Выберите все ячейки и разблокируйте их для редактирования->

 выберите все ячейки, щелкните правой кнопкой мыши в любом месте, чтобы отформатировать ячейки. Перейти кProtection вкладка и отмените выборLocked 



Выберите ячейки, от которых вы хотите скрыть формулы, и заблокируйте их ->

 ВыбратьA1щелкните правой кнопкой мыши, перейдите кProtection вкладка и выберитеLocked а такжеHidden 



Защитить лист->

 Нажмите на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
No2.

С новой таблицей вставьте этот код в новую (VBEALT +F11)Module, ВыполнитьMain макрос из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

После исполнения взгляните на диапазоны листовA1 а такжеA2

когда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
 Our Man in Bananas19 дек. 2014 г., 00:08
исключительный ответ

Ваш ответ на вопрос