显示单元格编号而不是值的输入框vba
我有以下代码提示用户单击单元格值显示单元格编号而不是值的输入框vba,vba,excel,Vba,Excel,我有以下代码提示用户单击单元格值 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
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。据我所知,您需要从用户处获取输入,并假设只提供单个单元格。您需要检索所选单元格的值,并将其字体样式设置为粗体 您可以通过首先获取选定的单元格引用,使用
Font
属性设置任何字体样式,并读取其值
属性以获取其内容来实现此目的
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)
据我所知,您需要从用户处获取输入,并假设只提供单个单元格。您需要检索所选单元格的值,并将其字体样式设置为粗体 您可以通过首先获取选定的单元格引用,使用
Font
属性设置任何字体样式,并读取其值
属性以获取其内容来实现此目的
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)
这对你有什么作用
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
这对您有何作用
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
另一个答案是使用用户表单
创建一个userform,例如:
注:“确定”按钮名为“确定”,白色文本框为“日期框”
对于表单代码,请使用:
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()
:
另一个答案是使用UserForm 创建一个userform,例如: 注:“确定”按钮名为“确定”,白色文本框为“日期框” 对于表单代码,请使用:
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()
:
如果类型为:=8,则无法执行此操作,它将显示地址。还考虑如果用户选择超过1个单元格会发生什么。我只是尝试不再选择1个单元格。我知道我做了范围,但它是如何返工为单细胞?当我切换到单单元格时,Type:=2是否会显示它?为什么您要从代码中省略子名称?如果Type:=8,则无法执行此操作,它将显示地址。还考虑如果用户选择超过1个单元格会发生什么。我只是尝试不再选择1个单元格。我知道我做了范围,但它是如何返工为单细胞?当我切换到单单元格时,Type:=2是否会显示它?为什么你要从代码中省略子名称?我并不想输出消息框,我只想显示他们在输入框中单击的内容。我理解你的解释,而且对任何试图这样做的人都有意义。好吧,那问题出在哪里呢。通过使用MsgBox,我试图展示如何从单元格中获取值,即
sDate.value
。我并不想输出消息框,我只想显示他们在输入框中单击的内容。我理解你的解释,而且对任何试图这样做的人都有意义。好吧,那问题出在哪里呢。通过使用MsgBox,我试图展示如何从单元格中获取值,即sDate.value
。谢谢,但我只是想把用户单击的内容放在输入框中,它已经这样做了,但它放在输入框中的格式是错误的。@AngatvirSanghera-AFAIK这在输入框中是不可能的。您可能可以使用userform来实现这一点。谢谢,但我只是想将用户单击的内容放在输入框内,它已经这样做了,但它放在输入框内的内容格式是错误的。@AngatvirSanghera-AFAIK这在InputBox
中是不可能的。您可以使用userform来实现这一点。