excel - 如何通过表格运行列范围并使用 VBA 将其粘贴到另一列中?
问题描述
所以我正在尝试使用 VBA 在 Excel 中的表格中运行一列。然后我想复制结果并粘贴到另一列中。我已经让它适用于一个单元格,但是,当我尝试循环代码时,它只是在我希望它粘贴的范围内的每个单元格中粘贴相同的内容。我如何使它在循环时,它只粘贴在单个单元格中而不是整个范围?我的代码如下。
Sub Test1()
'
' Test1 Macro
'
'
Dim rng As Range, cell As Range
Set rng = Range("C16:C20")
For Each cell In rng
Dim rng2 As Range, cell2 As Range
Set rng2 = Range("G16:G20")
For Each cell2 In rng2
cell.Select
Selection.Copy
Range("B4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("D12").Select
Application.CutCopyMode = False
Selection.Copy
rng2.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Tranpose:=False
'ActiveCell.Offset(1, 0).Select
Next cell2
Next cell
End Sub
谢谢!
解决方案
猜你想要这样的东西:
Sub Test1()
Dim rng As Range, cell As Range, ws As Worksheet
Set ws = ActiveSheet
Set rng = ws.Range("C16:C20")
For Each cell In rng.Cells
ws.Range("B4").value = cell.Value
cell.offset(0, 4).value = ws.Range("D12").Value 'populate in Col G
Next cell
End Sub
请注意,通常不需要在 excel 中选择/激活任何内容(尽管宏记录器做了很多)。值得回顾:如何避免在 Excel VBA 中使用 Select
同样,如果您需要在单元格之间传输值,您可以直接执行此操作而无需复制/粘贴。
推荐阅读
- c++ - 为什么显式调用析构函数时msvc编译器会发出未使用的变量
- ios - 在目标 c 中,AVAudioplayer 路径未在后台更新
- amazon-web-services - SNS 应用程序选项未出现
- scikit-learn - 在 scikit-learn 中获取每个亲和传播集群的顶级术语
- php - 我的 INSERT 语句有什么问题?(PHP)
- mysql - 查找数据库中没有关联记录的所有记录
- javascript - 如何使用电子表格中的 javascript 函数获取日期之间的工作日
- c++ - 该程序不接受任何输入。在第一次输入后它会自动关闭
- angularjs - AngularJS 从另一个控制器调用控制器函数
- python - 如何在 Latex pygal 标签中渲染