【发布时间】:2016-10-25 19:20:24
【问题描述】:
我试图让我的输入框将一个数字转储到特定的单元格中。就在正确的单元格上提示框而言,我已经使它起作用了,但是当我按回车键或单击确定时,单元格保持空白。 有人知道如何解决吗?
谢谢!!
Sub DiscardPipe()
Dim str As String
Dim rtrn As String
Dim impu As Integer
With Worksheets(ActiveSheet.Name)
rtrn = ActiveSheet.Name
str = Range("e2").Value
Set SrchRng = Worksheets("Information").Range("J8:J17").Find(what:=str)
Sheets("information").Select
Range("J8:J17").Find(what:=str).Select
Selection.End(xlToRight).Select
Selection.End(xlToRight).Select
Selection.End(xlToRight).Select
Selection.End(xlToRight).Select
Selection.End(xlToRight).Select
Selection.End(xlToRight).Select
Selection.End(xlToRight).Select
Selection.End(xlToRight).Select
Selection.End(xlToRight).Select
Selection.End(xlToRight).Select
Selection.End(xlToRight).Select
Selection.End(xlToLeft).Select
ActiveCell.Offset(0, 1).Range("A1").Select
impu = InputBox("Enter New Bottom Pipe Serial Number", "New Pipe", 1)
End With
End Sub
【问题讨论】:
-
你想在这里做什么,为什么你反复使用
Selection.End(xlToRight).Select?此外,当您将值分配给impu变量时,您永远不会将该值输出到工作表,例如Range("A1").Value = impu。 -
(请参阅how to avoid using
.Select/.Activate以减少大量代码。) -
换句话说,您在这段代码中所做的最后一件事只是将
InputBox中的值存储到一个变量中。下一行是你的End With,然后是End Sub。您存储的值不会发生任何变化,您什么也不做,它就在内存中。 -
deejaay,@DavidZemens 已经回答了这个问题。要将值存储在工作表上,您应该在
impu = InputBox("Enter New Bottom Pipe Serial Number", "New Pipe", 1)行之后插入Range("A1").Value = impu。这会将输入框中的值输出到单元格A1。如果您想要它在工作表上的其他位置,那么您将不得不更改它。如果您希望它在另一个工作表中(而不是当前活动工作表),那么您还必须更改这行代码。 -
我非常怀疑能否可靠地找到正确的输入单元格,但如果没有看到您的工作表,我无法确定。如果您可以更多地解释数据的去向(即,它是否总是在同一列中,等等),那么大约有 99.99% 的机会有更好、更可靠、更简洁的方式来获得该输出你想要的地方:)