首页 > 解决方案 > 如何使用变量在 VBA 中复制整个列的内容?

问题描述

我将“c”分配为变量并在 For 语句中使用它。如果 Z1 = B1 或 C1,我希望它复制整个列。

我努力了:

Dim c As Range
Dim name As String

name = Range("Z1").Value

For Each c In Range("B1:C1").Cells
If c.Text = name Then
Columns.Range(c).Copy

但这似乎不起作用。

如何使用之前在列/范围中分配的变量?

标签: excelvba

解决方案


非常非常接近:

代替:

Columns.Range(c).Copy

和:

c.EntireColumn.Copy

编辑#1:

一旦我们找到了正确的列,我们就可以复制它的任何部分。假设我们要复制第 17 到 23 行:

Dim kolumn As Long
kolumn = c.Column
Range(Cells(17, kolumn), Cells(23, kolumn)).Copy

推荐阅读