【发布时间】:2020-01-29 02:30:49
【问题描述】:
我正在尝试连接到工作簿以跟踪订单。一个工作簿(Book1)显示订单号、总数量和当前数量(到目前为止已完成)以及生产办公室的周订单列表。另一个工作簿(Book2)在工作站上,供操作员在零件完成时输入新订单号和当前数量。
代码的前半部分运行良好。它成功更新了 order# 并将其从 Book2 粘贴到 Book1。我无法完成的是将表格的“状态”列中的单元格更新为刚刚粘贴到工作簿中的相应订单号为 1 或 2。我将表格格式化为空白单元格为红色的位置(订单未激活),1 = 黄色(订单已打开)和 2 = 绿色(订单完成)。
我尝试使用订单计数为 0 的“IF”关闭下面的代码,因为它会在粘贴新订单#之前重置。 注意:订单可能不会按照它们列出的顺序完成,所以它必须是某种类型的查找。我不能只在“状态”列中找到最后一个空单元格。
更新* 想通了!如果其他人遇到此线程,下面的代码现在可以正常工作!
感谢以下 cmets 中的每个人。
Private Sub CommandButton1_Click()
Dim wbEntry As Workbook
Set wbEntry = ThisWorkbook
Dim wbCount As Workbook
Set wbCount = Workbooks("MO# Count.xlsm")
wbEntry.Sheets("Sheet1").Range("B3").Copy
wbCount.Activate
wbCount.Worksheets("Golf Cart").Range("V5").Select
ActiveCell.PasteSpecial xlPasteValues
Dim Fnd As Range
Set Fnd = Sheets("Golf Cart").Range("A:A").Find(Sheets("Golf Cart").Range("V5").Value, , , xlWhole, , , False, , False)
If Not Fnd Is Nothing Then
Set Fnd = Fnd.Offset(0, 2)
End If
Fnd.Value = 1
ActiveWorkbook.Save
wbEntry.Activate
Application.CutCopyMode = False
wbEntry.ActiveSheet.Range("H2").Select
End Sub
【问题讨论】:
-
其实没有问题。如果你得到错误,请告诉哪一行和哪一行。如果您没有收到错误,请告诉代码到底有什么问题。请注意“It’s not working” is not helpful。 • 同样
Status = Application.WorksheetFunction.VLookup(MONum, MOlist, 3, False).Select这一行必须没有.Select:您可能会从阅读How to avoid using Select in Excel VBA 中受益。 -
查找列研究中的最后一个单元格
range.End(xlUp) -
我需要能够编辑 Vlookup 找到的单元格。如果不选择,那么在找到该单元格后如何编辑该单元格的值?
-
尝试使用FIND返回对找到的单元格的引用。
-
是的,您需要
find才能找到包含YMM…759的单元格。所以实际上你有该单元格的 reference (它不适用于值)并将该引用放入变量FoundCellReference然后您可以使用 Range.Offset property 从该单元格移动 2 列向右写一个值。例如FoundCellReference.Offset(ColumnOffset:=2).Value = 5。去吧,这是正确的方法。