Excel VBA如果是“x”,则选择行并粘贴到另一个工作表

时间:2010-07-28 06:37:55

标签: excel vba excel-vba

我一直试图为工作项目开发一个相当基本的会计电子表格。我不确定如何在这里添加附件,所以我会尽可能地尝试解释。

我每天都会手动将数据输入到包含多个列的工作表中,我的列标题有几个示例:Tax Invoice No.CustomerDescriptionDate 。它们的范围从单元格A3Y3,表格涵盖范围A3:Y1135

我需要为其他人建立一个易于阅读数据的首页报告,但这也允许我填充:Current Month ResultsPrevious Month ResultsYear to date results,无论我选择哪个。我知道有很多手动的方法可以解决这个问题,但我希望得到一些比我更先进的人的意见!我在想一个宏按钮或一个下拉框来生成报告可能会有效,但我被卡住了。

有没有人有任何想法?

3 个答案:

答案 0 :(得分:1)

不需要VBA。使用数据透视表(隐藏工作表)来合并数据,如果需要进一步自定义,请使用GetPivotData函数来提取精确字段...在GetPivotData函数中引用外部单元格将允许查看器过滤...可以使用类似的东西组合框,列表,甚至数据验证,以供选择...

答案 1 :(得分:0)

我想说你可以用标准的excel公式做到这一点,而不必费心去做VBA。如果没有更详细的信息,很难给出确切的答案,但我会按照您想要报告的时间段进行计算,然后使用SUMIF函数或SUMPRODUCT(如果您使用多个条件来获取摘要页面)。如果要查找vales而不是一起添加范围,请查看VLOOKUP

答案 2 :(得分:0)

 Sheets("Output").Select
Range("A2").Select
Name2 = ActiveCell.Value
Do While Name2 <> ""
Sheets("Master Table").Select
Range("A2").Select
name1 = ActiveCell.Value
Do While name1 <> ""
 If name1 = Name2 Then
      ActiveCell.Offset(0, 1).Select
      Range(Selection, Selection.End(xlToRight)).Copy
      Sheets("Output").Select
      ActiveCell.Offset(0, 1).Select
       ActiveCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
      'ActiveSheet.paste
      Application.CutCopyMode = False
      Range(Selection, Selection.End(xlToLeft)).Select
      'ActiveCell.Offset(1, 0).Select
      name1 = ""
  Else
    Sheets("Master Table").Select
    ActiveCell.Offset(1, 0).Select
    name1 = ActiveCell.Value

End If
Loop
Sheets("Output").Select
 ActiveCell.Offset(1, 0).Select
    Name2 = ActiveCell.Value
Loop