【发布时间】:2019-10-10 07:45:55
【问题描述】:
我有一个带有组合框和文本框的用户表单。我希望文本框从 combobox1 的值链接到单元格 2 列。我该怎么做呢?
此外,如果组合框/文本框为空白,我希望链接的单元格值保持原样。
下面的代码用于填充用户表单组合框。
With Worksheets("ML")
.Cells(.Rows.Count, "B").End(xlUp).Offset(1, 0) = ComboBox1.Value
.Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0) = ComboBox2.Value
.Cells(Rows.Count, "B").End(xlUp).Offset(-1, 1).Resize(, 3).AutoFill
.Cells(Rows.Count, "B").End(xlUp).Offset(-1, 1).Resize(, 3).Resize(2)
With .Cells(Rows.Count, "B").End(xlUp).Offset(-1, 1).Resize(, 3).Resize(2)
.Borders.LineStyle = xlContinuous
End With
With Worksheets("CT")
.Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0) = ComboBox2.Value
.Cells(Rows.Count, "A").End(xlUp).Offset(-1, 1).Resize(, 21).AutoFill
.Cells(Rows.Count, "A").End(xlUp).Offset(-1, 1).Resize(, 21).Resize(2)
With .Cells(Rows.Count, "A").End(xlUp).Offset(-1, 1).Resize(, 3).Resize(2)
.Borders.LineStyle = xlContinuous
End With
ActiveWorkbook.RefreshAll
Unload Me
End Sub
我希望 Combobox1 的值显示在 A 列中的下一个可用单元格中,然后我希望 textbox1 显示在与组合框值相同的行中,但在列 AE 中。在与文本框值和组合框值相同的行中,我希望填写到 AM 的列。最后,我希望 AM 之前的列有边框。
【问题讨论】:
-
您可以重复使用相同的代码
.Cells(.Rows.Count, "B").End(xlUp).Offset(1, 0) = ComboBox1.Value,只需在offset列中添加2,即:.Cells(.Rows.Count, "B").End(xlUp).Offset(1, 2) = TextBox.Value。至于将值保留为空白,您应该将每个值分配包装在 if 语句中,例如if combobox1.value <> "" then... -
请澄清:您是否希望将“combobox1 的值超过单元格 2 列”中的值放在
TextBox中,反之亦然 -
单元格 2 列在组合框 @GMalc 的链接单元格上方
-
@DarXyde 这是我迄今为止尝试过的,但如果我输入文本框,我什么也不会显示。我也认为当它留空时不会发生任何事情。 With Worksheets("ML") If TextBox1.Value "" Then .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 2) = TextBox1.Value .Cells(Rows.Count , "A").End(xlUp).Offset(-1, 1).Resize(, 43).AutoFill .Cells(Rows.Count, "A").End(xlUp).Offset(-1, 1) .Resize(, 43).Resize(2) Else End If End If End With ActiveWorkbook.RefreshAll 卸载我
-
请将响应视为答案... cmets 中的缩进很可怕(嗯,没有)。