enter image description here我想从两张纸上读取数据,而用户只输入日期,点击按钮后数据将填入表格。
标题日期
输入周开始日期“7/11/2016”(按钮)
名称项目ID项目名称项目开始日期项目结束日期总和* 20
这是要求的实际格式。
答案 0 :(得分:0)
在你的行
Set objsheet = bjExcel.ActiveWorkbook.Worksheets("Config_InputAllocation_Weekly")
Set objsheet2 = objExcel.ActiveWorkbook.Worksheets("Config_Project")
您尝试将两张纸张设为活动状态,这是不可能的。只有一张活动表。但您不必将它们设置为活动状态。使用以下技术:
Dim objExcel as Object
Set objExcel = CreateObject("Excel.Application")
Dim myWb as workbook, myws1 as worksheet, myWs2 as worksheet
Set myWb = objExcel.Workbooks.Open("C:\Users\ABC\Documents\NSL\Automation Macro\NSL_DM_Tracker.xlsm")
Set myWs1 = myWb.Worksheets("Config_InputAllocation_Weekly")
Set myWs2 = myWb.Worksheets("Config_Project")
然后,您可以轻松地从两张纸上调用数据,无论它们是否处于活动状态:
Msgbox myWs1.Cells(1,1).value
Msgbox myWs2.Cells(1,1).value
然后另一个问题是你已经定义了一个子searchdata()
,但它没有在你的CommandButton1_Click()
Sub中调用。
此外,使用Option Explicit设置,即将此行放在代码的最顶层:
Option Explicit
这将帮助您调试代码。
最后但并非最不重要的是,在您的Sub searchdata()
中没有定义工作表。因此,它不知道使用哪一个(myWs1或myWs2)以及何时使用。