【问题标题】:Excel VBA: fill textbox based on combobox selectionExcel VBA:根据组合框选择填充文本框
【发布时间】:2016-10-20 10:42:25
【问题描述】:

首先,我对 excel VBA 不是很有经验。在网上和youtube上搜索后我无法弄清楚,所以我希望你能帮助我。

在我的工作簿中,我运行一个宏,该宏通过 =NOW() 提供时间戳,并通过 CHAR(RANDBETWEEN) 提供“唯一”生成的代码。然后将其复制并粘贴到单独的工作表(“日期”)中,为我的组合框创建列表,其中代码在 A 列中,时间戳在 B 列中。每次运行宏时,都会生成一个新的时间戳和代码并再次放入第 1 行 A 列和 B 列(因此旧的列向下移动)

通过组合框,我得到了基于以下代码的时间戳列表:

Private Sub UserForm_Initialize()
Dim ws As Worksheet, lirow As Integer

Set ws = ThisWorkbook.Worksheets("Dates")
lirow = 1
While ws.Cells(lirow, 2) <> ""
Me.cboxDates.AddItem ws.Cells(lirow, 2).Value
lirow = lirow + 1
Wend

End Sub

我想要的是在我的组合框旁边的文本框中显示相应的代码,所以基本上只是一个偏移量(0,-1)。

感谢您的帮助。

提前致谢!

克鲁,马蒂

【问题讨论】:

    标签: excel vba


    【解决方案1】:
    Private Sub cboxDates_Change()
      Dim Found As Range, LastRow As Long
      Set Found = Worksheets("Dates").Columns(2).Find(what:=Me.cboxDates.Text, LookIn:=xlValues, lookat:=xlWhole)
      If Found Is Nothing Then Exit Sub
      Me.TextBox1.Text = Worksheets("Dates").Cells(Found.Row, Found.Column).Offset(0, -1).Value
    End Sub
    

    【讨论】:

    • 非常感谢您抽出宝贵时间回答我的问题。我尝试了一个不太复杂的代码,但我遇到的问题是(抱歉之前没有解释)是 NOW() 将“值”复制并粘贴到单元格中,因此它们无法更改。使用 find 功能时,我遇到了它无法识别我的日期的问题。我相信这是由 excel 存储日期的方式造成的?有没有解决的办法 ?我已经用非日期数据对其进行了测试,效果很好,非常感谢:)。
    • 您是否尝试将列的格式设置为某种特定的日期格式?
    • 我的专栏日期:3/14/01 1:30 PM
    • 单元格显示示例:10/5/16 3:28 PM,但如果我单击包含 10/5/16 3:28:29 PM 的单元格,则添加秒数,其中也被视为我的组合框中的选项
    • 如果我将单元格复制并粘贴到查找选项中,它将选择该单元格,但如果我复制并粘贴底层它不会。我现在还添加了一个自定义选项来添加:ss(秒),所以如果我查看单元格并在栏中它反映相同的值,如果我
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多