【问题标题】:How do I make macro pull data from different sheets within a workbook. Excel VBA如何从工作簿中的不同工作表中获取宏数据。 Excel VBA
【发布时间】:2016-04-19 20:07:03
【问题描述】:

我遇到了一个用于将信息从一个工作表拉到另一个工作表的宏问题。我无法弄清楚如何让宏查看“CurrentSchedule”工作簿中的不同工作表。当我使用第一张(A 行)工作表浏览宏时,一切运行顺利,但是当我尝试通过第二张(B 行)运行它时,它会超时。它特别卡在这条线上

" Order = Range("W1").Offset(Count, 0).Value"

SAPorder = InputBox("Enter SAP Order Number:")
ProdLine = InputBox("Enter the sheet# of CurrentSchedule that has this   SAP order number. Example: A line = 1; B = 2")
End Select
Count = 0 'Count is the row in the designated column
Flag = True
Do While Flag
Workbooks("CurrentSchedule.xlsx").Worksheets(ProdLine).Activate
Order = Range("W1").Offset(Count, 0).Value 
If Order = SAPorder Then
nme = Range("B1").Offset(Count, 0).Value 

【问题讨论】:

  • 您没有任何资格。换句话说,计算机如何知道您想要哪个工作簿/工作表?
  • 你只显示了循环的一部分
  • 你搜索了什么?这是一个very common 问题。但是,是的,您绝对需要对所有范围进行限定......并包含所有代码。
  • @BruceWayne 这非常很常​​见,即使你only look at stack overflow
  • @macroman - 哦,毫无疑问!

标签: vba excel macros


【解决方案1】:

扔掉那个愚蠢的.activate方法,学习如何使用它

Sheets("sheetName").range("rangeName/rangeRange")[optional].cells("cellRow","cellColumn")

这将使您的工作更轻松,然后您可以将工作表/范围/单元格作为对象。

此外,当您使用没有点和父分配的范围/单元格时,您使用的是活动工作表,这可能是非常不可预测的。所以如果你使用上面提到的完整语句,你就不会出错。

【讨论】:

  • 谢谢。我会调查的。老实说,我对 VBA 很陌生,这个宏一直是他们在我的新工作中完成这个过程的方式。我正在尝试拿起它并解决它的问题。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 2011-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-17
  • 1970-01-01
相关资源
最近更新 更多