输入框vba显示单元格编号而不是值

时间:2017-08-23 18:04:44

标签: excel vba excel-vba

我有以下代码,提示用户点击单元格值。

Dim sDate As Range
On Error Resume Next
    Application.DisplayAlerts = False
        Set sDate = Application.InputBox(Prompt:= _
            "Please select start date.", _
                Title:="Start Date", Type:=8)
On Error GoTo 0
    Application.DisplayAlerts = True
    If sDate Is Nothing Then
        Exit Sub
    Else
        sDate.Font.Bold = True
    End If
End Sub

输入框但是一旦选择了一个值就可以说比如我点击b3会显示$ b $ 3。我想显示$ b $ 3内的值。例如,如果17-Jun在$ b $ 3内,它应该在输入框中显示17-Jun而不是$ b $ 3.

3 个答案:

答案 0 :(得分:2)

另一个答案是使用UserForm。

创建用户表单,例如:

enter image description here

注意:“确定”按钮名为“确定”,白色文本框为“日期框”

对于表单代码,请使用:

Private Sub Ok_Click()
ActiveCell.Font.Bold = True
UserForm1.Hide
End Sub

然后在工作表模块中,输入:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count = 1 Then UserForm1.dateBox.Value = Target.Value
End Sub
Sub bold_Date2()
UserForm1.Show vbModeless
End Sub

然后运行bold_date2()

enter image description here

答案 1 :(得分:0)

我了解您需要从用户那里获取输入,并假设只提供单个单元格。并且您需要检索所选单元格的值并将其字体样式设置为粗体。

您可以通过首先获取选定的单元格引用来实现此目的,使用Font属性设置任何字体样式并读取其Value属性以获取其内容。

 Set sDate = Application.InputBox(Prompt:= _
            "Please select start date.", _
                Title:="Start Date", Type:=8)

    sDate.Font.Bold = True
    MsgBox ("Selected cell's value is: " & sDate.Value)

答案 2 :(得分:0)

这对你有什么用?

Sub bold_Date()
Dim sDate   As Range
On Error Resume Next
Application.DisplayAlerts = False
Set sDate = Application.InputBox(Prompt:="Please select start date.", Title:="Start Date", Type:=8)

If sDate.Cells.Count > 1 Then Set sDate = sDate.Cells(1, 1)
MsgBox ("Date is: " & sDate.Text)

Application.DisplayAlerts = True

If sDate Is Nothing Then
    Exit Sub
Else
    sDate.Font.Bold = True
End If
End Sub

选择一个范围后,它会在消息框中显示日期。此外,它还检查多个单元格。如果选择了多个单元格,则会使用该范围中的第一个单元格作为新的sDate