在要粘贴的范围中创建动态起始点和结束点



我对VBA相当陌生。

我有一段代码,从一个电子表格复制了列K中有数字数据的所有行。这将在多个电子表格上运行,这些电子表格具有不同的练习名称和作业编号。

作为作业编号的练习只出现在原始工作表的一个单元格中,这就是为什么要在If语句的单独一行代码中检查值是否为数字。

我让带数字的行先放进去。然后我将练习和工作编号添加到S和r列中。我的初始代码工作正常,只是范围以。range("R2:2",lastrow)。值,所以当它复制我想要复制的东西时它总是从R2开始粘贴,所以习题1的所有行现在都是习题2了。每次我复制任何东西都会发生这种情况。

然后我尝试定义第一行和最后一行,但我得到error1004。

这是我的原始代码,覆盖:

'Import job number and exercise  
Dim jobnumber As String  
Dim exercise As String  
jobnumber = ActiveSheet.Range("S3").Value  
exercise = ActiveSheet.Range("B4").Value  
lastrow = Workbooks("GQE Asana Import").Sheets("Sheet1").Cells(Rows.Count, "K").End(xlUp).Row  
Workbooks("GQE Asana Import").Sheets("Sheet1").Range("R2:R" & lastrow).Value = jobnumber  
Workbooks("GQE Asana Import").Sheets("Sheet1").Range("S2:S" & lastrow).Value = exercise  

这是我试图使起始范围即"R2: "动态给出1004错误

'Import job number and exercise  
Dim jobnumber As String    
Dim exercise As String  
Dim firstrowjn As Integer  
Dim firstrowex As Integer  
jobnumber = ActiveSheet.Range("S3").Value  
exercise = ActiveSheet.Range("B4").Value  
lastrow = Workbooks("GQE Asana Import").Sheets("Sheet1").Cells(Rows.Count, "K").End(xlUp).Row  
firstrowjn = Workbooks("GQE Asana Import").Sheets("Sheet1").Cells(Rows.Count, "R").End(xlUp).Row + 1  
firstrowex = Workbooks("GQE Asana Import").Sheets("Sheet1").Cells(Rows.Count, "S").End(xlUp).Row + 1  
Workbooks("GQE Asana Import").Sheets("Sheet1").Range(firstrowjn & lastrow).Value = jobnumber  
Workbooks("GQE Asana Import").Sheets("Sheet1").Range(firstrowex & lastrow).Value = exercise  

我已经遍历了它,并首先选择了正确的行号。它似乎只是在添加单元格值时中断。

我尝试过在set关键字使用范围而不是整数,我尝试过cells()而不是range(),但这不会出错,它也不会改变值。我尝试过范围(单元格…),但它也不喜欢这样定义。我尝试了每个循环,但这需要相当长的时间来完成,我不能再绕过动态定义范围的问题。

如何设置起始范围- R2:R"像最后一行一样动态?

注意:最后一行设置在代码的后面,并且是一个整数。我使用K列,因为它有第一批数据,所以这是多少时间的工作没有/练习需要在列R和s中运行。宏将运行完每个工作表的数据,因为每个月的数字都会有所不同,这就是为什么我使用活动表。

我想这涵盖了一切。提前感谢您的帮助!

可以在范围函数中使用单元格函数。像这样使用它:range(cells(row1,column1),cells(row2,column2))你不能在cells函数中使用字符,你必须使用数字代替。对于R,数字是18,对于S,数字是19(按字母顺序)

Workbooks("GQE Asana Import").Sheets("Sheet1").Range(Cells(firstrowjn, 18), Cells(lastrow, 18)).Value = jobnumber
Workbooks("GQE Asana Import").Sheets("Sheet1").Range(Cells(firstrowex, 19), Cells(lastrow, 19)).Value = exercise

相关内容

  • 没有找到相关文章

最新更新