VBA-从关闭的文件粘贴复制到汇总表上的下一个可用行

VBA-从关闭的文件粘贴复制到汇总表上的下一个可用行,vba,excel,Vba,Excel,这是我的第一篇文章。如果我做错了什么,请原谅我。我很乐意改正任何错误。我发现这个网站非常有价值,因为我是vba领域的一个婴儿。请对我有耐心 我是VBA的超级新手。我边学习边学习,但在这方面花了很多时间。我在网上找到一些零碎的信息,但很难把它们放在一起。我已经学习了如何制作一个vba宏,我可以选择一个文件,然后运行其他宏。 我正在使用Excel 2013。 我每周(有时在月底)完成一份工作时间表,记录我的工作时间和我的项目。当我外出时,我也会在那张纸上写上原因代码。我想将三个部分复制到摘要页上 D

这是我的第一篇文章。如果我做错了什么,请原谅我。我很乐意改正任何错误。我发现这个网站非常有价值,因为我是vba领域的一个婴儿。请对我有耐心

我是VBA的超级新手。我边学习边学习,但在这方面花了很多时间。我在网上找到一些零碎的信息,但很难把它们放在一起。我已经学习了如何制作一个vba宏,我可以选择一个文件,然后运行其他宏。 我正在使用Excel 2013。 我每周(有时在月底)完成一份工作时间表,记录我的工作时间和我的项目。当我外出时,我也会在那张纸上写上原因代码。我想将三个部分复制到摘要页上

  • D1单元。此单元格旁边总是有日期。我想把这个复制到我第一行的单元格
  • 单元格F3-L3是放置代码的单元格。我想把它复制到我第一行的第二个单元格
  • 下一个单元格范围是最后一个单元格,数据在F-L列中。这些单元格不同,因为每次工单的行数不同,但始终在F-L列中。我想将其复制到第一个单元格中相应单元格下方的第二行。 对于下一个文件,我想复制到摘要中的下一个可用行
  • 我想复制这些数据,以便计算假期、病假等。
    我知道我有很多要求,但如果有任何帮助,我将不胜感激。

    我给你举个例子,你仍然需要修改

    Option Explicit 'forces Programmer to declare variables
    
    Sub Button_To_Copy () 'link this to a button or other action that launchs the sub
    Dim Range_to_Copy as Range
    Dim Range_Destination as Range
    
    Dim Sheet_Data as worksheet 'sheet from where we pull the data
    Dim Sheet_Destination as Worksheet' Summary Sheet
    
    set Sheet_Data = Thisworkbook.Sheets("Sheet1") 'you might have to rename the sheetname accordingly to its name.
    set Sheet_Destination = Thisworkbook.sheets("Summary") ' wild guess, correct to your summary sheet name
    
    Set Range_to_Copy = Sheet_Data.Range("D1")
    Set Range_Destination = Sheet_Destination.range("A1")
    
    Range_to_Copy.Copy Range_Destination  'this copies from range A to B (basically A.copy B), but i changed variable names to make it easier...
    
    'more code, copies
    
    'you can simplify without variables like this:
    'Sheets("Sheet1").Range("D1").Copy Sheets("Summary).Range("A1")          <=====    does the same as the above coding
    
    End Sub
    
    optionexplicit'强制程序员声明变量
    Sub Button_To_Copy()'将此链接链接到启动Sub的按钮或其他操作
    变暗范围\u到\u复制为范围
    变暗范围\目标作为范围
    将工作表\u数据作为工作表,从中提取数据
    尺寸表\u目的地为工作表的汇总表
    set Sheet_Data=thiswook.Sheets(“Sheet1”)“您可能必须相应地将sheetname重命名为其名称。
    设置Sheet_Destination=Thisworkbook.sheets(“Summary”)'通配符,更正为您的摘要工作表名称
    将范围设置为复制=图纸数据范围(“D1”)
    设置范围\目的地=图纸\目的地。范围(“A1”)
    Range_to_Copy.Copy Range_Destination'这将从范围A复制到范围B(基本上是A.Copy B),但我更改了变量名以使其更简单。。。
    “更多代码,副本
    '您可以不使用以下变量进行简化:
    
    “工作表(“工作表1”)。范围(“D1”)。复印工作表(“摘要”)。范围(“A1”)录制一个宏,执行每个步骤。Excel将为您编写代码,这为您提供了一个开始的位置。谢谢你,肯。我已经尝试过了,它确实很有帮助。不断遇到问题。如果你已经尝试过,你应该有代码可以发布,表明你的努力,然后你可以解释“问题”“您遇到了这个问题,并提出了一个具体的问题,我们可以帮助您解决。我不知道如何录制宏并打开“选择文件”框,这是我正在尝试做的一件事。此外,我不知道如何录制宏以从我刚刚打开的文件的最后一行获取数据。我很抱歉不知道这些事情。然后问一个关于如何打开文件对话框的新问题(在单独的帖子中)。获取最后一行数据将与往常一样,无论文件是已经打开还是您刚刚打开,这里有几十个以前的问题提供了这些信息。我有前3个部分要做,但无法让最后一个部分复制F列到L列中的最后一个单元格,例如,F列中的最后一个单元格:
    set Range\u last\u F=sheet\u Data.cells(sheet\u Data.cells(sheet\u Data.rows.count,“F”).end(xlup).row,“F”)
    。我想如果你知道如何得到单元格,你现在可以得到它的值,并复制它。(“F”也可以用6替换,不带引号),因此可以通过将“F”替换为6到12的整数或长变量,从F列循环到L列。