gpt4 book ai didi

vba - 在 Excel 中复制多个范围并连接它们

转载 作者:行者123 更新时间:2023-12-04 22:10:12 27 4
gpt4 key购买 nike

我的 Excel 工作表有多个使用范围。我想复制每个范围值并将它们连接起来。我所做的是

Set tempRange = Union(SrcWkb.Worksheets("mysheet").Range("F1:H1"), SrcWkb.Worksheets("mysheet").Range("I1:J1"), SrcWkb.Worksheets("NWP").Range("K1:L1"))

For Each eachRange In tempRange
tempString = tempString & eachRange & "/"
MsgBox tempString
Next eachRange

我想复制合并单元格 F1:H1 中的值,并将 I1:J1(也合并)和 K1 中的“/”和值连接到 L1。但是,Excel 会抛出“下标超出范围”错误。我怎么能做到这一点?

screenshot

最佳答案

从您的原始帖子中不清楚您需要什么输出。这是一个可以帮助您入门的选项:

Sub ConcatRanges()
Dim rangeOne As Range, rangeTwo As Range, rangeAll As Range, cl As Range, str As String

Set rangeOne = Worksheets("mysheet").Range("I27:K27")
Set rangeTwo = Worksheets("mysheet").Range("L27:N27")
Set rangeAll = Union(rangeOne, rangeTwo)

For Each cl In rangeAll
str = str & cl & " / "
Next cl

Debug.Print str //Output: 1 / 2 / 3 / 4 / 5 / 6 /
End Sub

更新帖子

处理合并范围可能很棘手。例如,合并范围 F1:H1值(value)36M。要访问该值,您必须引用合并范围中的第一个单元格。例子:
Sub MergedRangeDemo()
Dim rng As Range, cl As Range
Set rng = ActiveSheet.Range("F1:H1")

For Each cl In rng
Debug.Print cl.Value, cl.Address
Next cl

//Output: 36M $F$1 <-- Only first cell contains the value
// $G$1
// $H$1
End Sub

鉴于此,您可以使用 rowindex (1) 连接这些值。范围:
Sub ConcatRangesUpdated()
Dim rangeOne As Range, rangeTwo As Range, rangeThree As Range, str As String

Set rangeOne = ActiveSheet.Range("F1:H1")
Set rangeTwo = ActiveSheet.Range("I1:J1")
Set rangeThree = ActiveSheet.Range("K1:L1")

str = rangeOne(1) & " / " & rangeTwo(1) & " / " & rangeThree(1)

Debug.Print str 'Output: 36M / 40M / 36M
End Sub

关于vba - 在 Excel 中复制多个范围并连接它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8589942/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com