【问题标题】:VBA Excel Range to cellVBA Excel 范围到单元格
【发布时间】:2014-02-28 07:09:59
【问题描述】:

我需要将一个单元格范围复制到另一个表示第一个单元格的范围内。类似的东西:

.Cells(1,1) = .Range("B1:B5")

请帮忙,它不起作用,我是 VBA Excel 的新手!

【问题讨论】:

  • .Range("B1:B5").Copy .Cells(1,1)
  • 会不会没有usign copy功能?这是一个非常庞大的工作簿,我需要复制大量数据,我已经阅读过使用此功能不是一个好主意。
  • 它也以格式复制...
  • 你可以使用 1) Set rng = .Range("B1:B5") 然后 2) .Cells(1, 1).Resize(rng.Rows.Count, rng.Columns.Count).Value = .Range("B1:B5").Value。或者不定义新变量:.Cells(1, 1).Resize(.Range("B1:B5").Rows.Count, .Range("B1:B5").Columns.Count).Value = .Range("B1:B5").Value
  • Simoco 的回复完美回答了这个问题。

标签: excel vba


【解决方案1】:

我不确定你到底要复制什么或复制到哪里,但是...

With Workbooks("Book1").Worksheets("Sheet1")
    .Cells(1, 1).Value = .Range("B1").value
End With

将单元格 B1 的内容复制到同一页面上的单元格 A1。如果您需要复制 Range B1:B5 中的 5 个单元格,则需要指定一个范围作为您的第一个参数。你可以这样做:

.Range(.Cells(1, 1).Address & ":" & .Cells(5, 1).Address).value = .Range("B1:B5").value

这会将 B1 到 B5 的内容复制到 A1 到 A5。

Excel 将工作簿中的任意数量的单元格(1 个或 20 个或更多)视为一个范围,单元格允许您仅引用单个单元格。当您需要指定像Range("B1:B5") 这样的范围时,您可以找到定义它的单元格并使用.Address 来获取其字符串格式的范围地址。所以Cells(1, 1).Address 返回"$A$1" 并将它们连接到一个范围引用中,只要你记住中间的“:”,你就会得到一个范围。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多