如何在Excel VBA中复制一行

使用VBA编程Excel不像以前那样受欢迎。但是,在使用Excel时,仍有很多程序员更喜欢它。如果你是这些人之一科普活动总结,这篇文章是为你

在Excel VBA中复制一行是Excel VBA非常有用的。例如,您可能希望将所有收据的一个文件与日期,帐户,类别,提供商,产品/服务和成本一次输入一行,因为它们发生在不断演变的会计而不是静态会计的实例中。要做到这一点,您需要能够从一个工作表复制到另一个工作表。

为了简单起见,仅使用三列将一行从一个工作表复制到另一个工作表的Excel VBA示例程序包含:

  • 文本
  • 数字列的alpha列-在目标工作表上创建自动总和
  • 日期列-当前日期和时间自动填写

编写Excel VBA代码的注意事项

要触发复制该行的事件,请使用标准按钮表单控件。在Excel中,单击“插入开发人员”选项卡。然后,选择按钮表单控件并在需要的地方绘制按钮。Excel会自动显示一个对话框,让您有机会选择由按钮的单击事件触发的宏或创建一个新的宏。

有几种方法可以找到目标工作表中的最后一行,因此程序可以在底部复制一行。此示例选择维护工作表中最后一行的数量。要保持最后一行的数量,您必须将该数字存储在某个地方。这可能是一个问题,因为用户可能会更改或删除号码。为了解决这个问题,将它直接放在表单按钮下方的单元格中。这样,用户就无法访问它'。(最容易做的是在单元格中输入一个值,然后将按钮移到上面。)

使用Excel VBA

复制行的代码
Sub Add UtheLine()Dim currentRow作为整数表("Sheet1")。选择currentRow=Range("C2")。值行(7)选择。复制Sheets("Sheet2")。选择行(currentRow)Active Sheet.PasteDim theDate As Date theDate=Now()Cells(currentRow,4).Value=CStr(theDate)Cells(currentRow+1,3) 。根据范围设置激活Dim-rTotalCell rTotalCell=Sheets("Sheet2")。单元格(行。计数,&##34;C")。结束(xlUp)。偏移量(1,0)rTotalCell=WorksheetFunction.Sum_(范围("C7",rTotalCell.offact(-1,0)))表格("表格1")。范围("C2")。值=当前行+1结束子

该代码使用xlUp,a"魔数,"或更技术上使用枚举常数,End方法可以识别该常数。偏移量(1,0)只需在同一列中向上移动一行,因此最终效果是选择C列中的最后一个单元格。

换句话说,该声明说:

  • 转到C栏中的最后一个单元格(相当于End+Down箭头)。
  • 然后,返回到最后一个未使用的单元格(相当于End+up箭头)。
  • 然后,再向上一个单元格。

最后一个语句更新最后一行的位置。

VBA可能比VB.NET因为您必须同时了解VB和Excel VBA对象。使用xlUP是一种专业知识的很好的例子,对于能够编写VBA宏而无需为您编码的每个语句查找三种不同的事物至关重要。微软在升级Visual Studio编辑器方面取得了很大进展,以帮助您找出正确的语法,但VBA编辑器没有太大变化。