问题描述
我有几列(从B到G),以B3开头的数字。今天,我选择数据并将其与宏一起复制到单元格B3中。明天我要将数据复制到单元格B4,第二天再复制到B5。
当月份结束时,应将数据复制到C3,....
现在,我每天必须在宏中更改所需的B3,B4。如何自动执行。
预先感谢
部分代码:
Range("B47").Formula = "=SUM(B46-C46)"
Range("B47").Activate
Selection.copy
Sheets("VIP Punten").Select
Range("C33").Select "THIS HAS TO CHANGE EVERYDAY"
Selection.PasteSpecial Paste:=xlPasteValues,Operation:=xlNone,SkipBlanks _
:=False,Transpose:=False
解决方法
您必须找到表的最后一行和最后一列。
Dim last_row As Long
Dim last_column As Long
last_column = ActiveSheet.Cells(3,Columns.Count).End(xlToLeft).Column
last_row = ActiveSheet.Cells(Rows.Count,last_column).End(xlUp).Row
您可以将其应用于代码,例如:
Dim last_row As Long
Dim last_column As Long
Range("B47").Formula = "=SUM(B46-C46)"
Range("B47").Activate
Selection.Copy
Sheets("VIP Punten").Select
last_column = ActiveSheet.Cells(3,last_column).End(xlUp).Row
Cells(last_row,last_column ).Select "THIS HAS TO CHANGE EVERYDAY"
Selection.PasteSpecial Paste:=xlPasteValues,Operation:=xlNone,SkipBlanks _
:=False,Transpose:=False
其他建议:为优化代码,请尝试避免使用.Select
,这样更优化
之前:
Cells(last_row,last_column ).Select
Selection.PasteSpecial Paste:=xlPasteValues,Transpose:=False
之后:
Cells(last_row,last_column ).PasteSpecial Paste:=xlPasteValues,Transpose:=False
我希望我对您有帮助:)
,所以,我尝试了
将ValueCell设置为变体
将wb1设为工作簿
ValueCell = wb1.sheets(“ Blad1”)。range(“ B2”)。value
wb1.sheets(“ Blad2”)。range(“ D1”)= ValueCell“
但是在ValueCell = ...上出错。