Ber*_*rry 3 excel vba excel-vba
我正在解决一些问题,因为我是VBA的新手,但我确信它有一个非常简单的解决方案.
我基本上想要自动将新数据添加到工作表中.
表:INB BASKET单元格:A2:I76包含指向另一个工作表的实时链接.基本上我想将这些值作为值复制到工作表IND TOTAL下面按下按钮上的最新条目(不是不断更新).
我在excel中创建了一个动态命名范围(PasteRange),它选择了我要粘贴到的最后一个条目下面的75行:
=OFFSET('IND TOTAL'!$A$1,COUNTA('IND TOTAL'!$A:$A),0,75,9)
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个包含以下内容的模块:
Sub CopyRange()
Dim CopyFrom As Range
Set CopyFrom = Sheets("IND BASKET").Range("A2", [I76])
et PasteArea = Sheets("IND TOTAL").Range("PasteRange")
CopyFrom.Copy
PasteArea.PasteSpecial xlPasteValues
End Sub
Run Code Online (Sandbox Code Playgroud)
但是到目前为止没有成功,请指教.
小智 6
如果您只对粘贴值感兴趣,则直接值传输更有效,并且不涉及剪贴板.
with Sheets("IND BASKET").Range("A2:I76")
Sheets("IND TOTAL").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Resize(.Rows.Count, .Columns.Count) = .Value
end with
Run Code Online (Sandbox Code Playgroud)
使用您自己的复制,粘贴特殊xlPasteValues,您只需在目标的左上角指定单元格,并允许复制的区域定义大小和形状.
Sheets("IND BASKET").Range("A2:I76").Copy
Sheets("IND TOTAL").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Run Code Online (Sandbox Code Playgroud)
如果没有波动的OFFSET函数,你的命名范围的定义可能会更好,如,
=INDEX('IND TOTAL'!$A:$A, MATCH("zzz",'IND TOTAL'!$A:$A )+1):INDEX('IND TOTAL'!$I:$I, MATCH("zzz",'IND TOTAL'!$A:$A ) + 75)
'or for just the first cell
=INDEX('IND TOTAL'!$A:$A, MATCH("zzz",'IND TOTAL'!$A:$A )+1)
Run Code Online (Sandbox Code Playgroud)
这假定A列包含我使用COUNTA而不是COUNT推断的文本.如果列A包含数字,则交换1e99作为"zzz".
| 归档时间: |
|
| 查看次数: |
754 次 |
| 最近记录: |