【发布时间】:2017-05-15 01:03:55
【问题描述】:
工作环境:Excel 2013
目标:将 C1:C9 复制到 B11:B19。 D1:D9 到 B21:B29。 E1:E9 到 B31:B39 .....
将所有范围复制到B列后,将A1:A9复制到A11:A19(A21:A29....)
我的想法是: 1. 使用类似
的方式选择范围 range.end()
因为在我的一些工作表中,只有 4 个测试步骤。所以我需要一种可以自我检查列中使用的单元格的语法。
- 将范围复制到 B 列。
- 在考虑页面布局之间留出 1 行。
我的一段代码是:
Worksheets("Master").Columns(3).UsedRange.Copy
Worksheets("Master").Range("B11").PasteSpecial
但似乎 Columns(i).UsedRange.Copy 不起作用。 pastespecial 作品。
我的问题是:
如何在列中选择使用的范围?列数不固定,这意味着有些工作表有 40 列,但有些可能有 30 列。
谢谢!
【问题讨论】:
-
使用范围始终包括从左上角到右下角的区域。顶部和底部可能会有空白单元格,而
UsedRange.Columns(1)不是 A 列。处理可能存在的空白单元格的最简单方法是将它们包含在粘贴的范围内。跨度> -
因此您想将 C 列向前复制到 B 列。如果您要复制的列没有任何其他数据,您可以使用
Range("C1:C" & Range("C" & Rows.Count).End(xlUp).Row)获取 C 列中的所有数据