VBA复制和粘贴仅根据活动工作表select2个单元格
我得到了一个奇怪的错误与我的代码,如果我没有运行macros之前工作表活动它将只复制单元格B1和B2到我的其他工作簿模板构build。
下面附上我的工作。
Public Sub Info_Copy() Dim Lastrow As Integer Dim SOH As Excel.Workbook Set SOH = Workbooks("StockOH") Dim Template As Excel.Workbook Set Template = Workbooks("Template Build") Lastrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row SOH.Sheets("NSF").Activate Range("B2:B" & Lastrow).Copy Template.Sheets("Sheet1").Activate Range("B2").Select ActiveSheet.Paste
由于使用了ActiveSheet
对象,因此正在计算活动工作表上的行数。
如果您不想每次需要使用活动工作表时都确切地告诉它使用哪张工作表。 例如:
Lastrow = Workbooks("SomeWorkbook").Worksheets("SomeSheet").Cells(Rows.Count, 1).End(xlUp).Row
这很难说,但我的猜测是你需要这样的东西
Lastrow = SOH.Worksheets("SOH").Cells(Rows.Count, 1).End(xlUp).Row
我想你是在这样的事情之后:
Public Sub Info_Copy() Dim SOH As Excel.Workbook Set SOH = Workbooks("StockOH") Dim Template As Excel.Workbook Set Template = Workbooks("Template Build") With SOH.Sheets("NSF") '<--| reference wanted sheet in wanted workbook .Range("B2:B" & .Cells(.Rows.Count, 1).End(xlUp).Row).Copy Destination:=Template.Sheets("Sheet1").Range("B2") '<--| copy its column "B" cells from row 2 down to column A last not empty row and paste it to 'Template' workbook "Sheet1" worksheet from cell B2" End With End Sub
在不同的工作簿之间工作时,重要的是将范围引用限定为workbook
对象,因为:
-
不同的Excel版本工作簿可能有不同的工作表行号,以便
.Rows.Count
必须引用到正确的工作簿 -
不同的工作簿可以有同名的工作表
- 在SELECT * INTO XLSX('cities.xlsx',{headers:true})中dynamic改变文件名FROM?
- Application.Screenupdating = false影响所有的办公室
- Excel以相同的顺序将数据从一张纸张插入其他纸张
- VBA使用非空单元格和循环数组求和variables范围
- 我怎么能使用pywinautoclosuresExcel文件
- 使用PL / SQL创buildxls文件,而无需通过xml
- 使用像SUM()AVG()STDEV()返回#VALUE的JXL公式时出现问题! 当它引用另一张表的值时
- 在Excel中从名称列表创buildOccurences列表
- Excel VBA:将工作表的简单副本放在文件夹中的多个工作簿上