我想使用VBA将两个Excel工作表中的数据读取到一个带有按钮的Excel工作表?

时间:2016-07-12 07:16:53

标签: excel-vba vba excel

enter image description here我想从两张纸上读取数据,而用户只输入日期,点击按钮后数据将填入表格。

this is requirement that i want

标题日期
输入周开始日期“7/11/2016”(按钮)

名称项目ID项目名称项目开始日期项目结束日期总和* 20

这是要求的实际格式。

1 个答案:

答案 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)以及何时使用。

祝你好运, 尤