完成初学者到VBA并且在工作簿之间复制值时出现问题。
我的目标是从名为SupExp的工作表中复制某些列,并将它们粘贴到名为Expenses的工作表的不同工作簿中。 SupExp所需的列是A:C,H:M和O.我需要的值从每行的第9行开始,上面的任何信息都应该被忽略。每次报告进入时行数都会发生变化,每次工作表SupExp进入时都需要完成此过程。
当粘贴到费用中时,需要从下一个空行开始粘贴信息。因此,例如,如果A100 of Expenses中有信息,则从SupExp的A9复制的值需要从A101的费用开始。
列A:SupExp的C匹配列A:C的费用。 SupExp的O列需要放在费用D栏中。列H:M的SupExp与列E:J一致。
感谢您提供有关如何学习如何操作的任何帮助或建议。
答案 0 :(得分:0)
看起来你真的开始使用VBA了,我将提供一些概述信息。
要做你想做的事,你应该有一个可以作为宏调用的VBA子程序(来自按钮,键盘快捷键等)。有大量的在线教程可以指导您完成VBA编程的基础知识,所以我只是跳过您的具体问题。
要将单元格或范围的内容复制到其他位置,您只需要一个涉及表示范围和所需属性的对象的属性(=
)(取决于您是否要复制值,文本,公式等)。以下示例将Sheet1上的单元格A1-A5的值复制到Sheet2上的单元格B1-B5:
Sub CopyData()
WorkSheets("Sheet2").Range("B1:B5").Value = WorkSheets("Sheet1").Range("A1:A5").Value
End Sub
在您的问题中,您还需要找到列中的第一个空单元格,以找出您将在何处编写数据。一种简单的方法是探测列中每个单元格的内容,检查它是否为空,直到找到它为止。此示例仅使用活动工作表的A列并将其值设置为字符串,请将其检出:
Sub FirstEmpty()
Dim aRow As Long
aRow = 1
While ActiveSheet.Range("A" & aRow).Value <> ""
aRow = aRow + 1
Wend
ActiveSheet.Range("A" & aRow).Value = "FOUND IT!"
End Sub
请注意,这将计为具有公式结果为空字符串的单元格为空。如果要避免这种情况,请将.Value
语句中的While
属性替换为.Formula
属性。还有其他(可能更好)的方法来达到相同的结果 - 我只想提出一个选项。
尝试组合这些片段并适应您的问题。实验,google ...如果您仍然无法解决问题,请发布您的代码并再次寻求帮助。如果您已经拥有一些代码并且需要帮助以使其按预期工作,则更容易从社区获得帮助。祝你好运。