使用VBA划分不相邻的单元格
有关如何解决这个问题的任何build议?
(更新)
numerator
, denominator
是包含整数值的范围。
我想按这些范围的单元格划分一个单元格,例如:
numerator(1)/denominator(1) numerator(2)/denominator(2) ...
并将结果粘贴到quotient
。 所有的范围都是相同的大小,并且是行vector的尺寸。
我的解决scheme尝试
Sub DivRanges() Dim targetRng As Range, sourceRng1 As Range, sourceRng2 As Range For i = 1 To targetRng.Cells.Count quotient.Cells(i).Value = numerator.Cells(i).Value / denominator.Cells(i).Value Next i End Sub
问题是DivRanges
不会遍历范围的每个值,因为它们是行向量。 相反,随着我的成长,它变得越来越小。 当范围的单元格不相邻时,会发生此问题。
这是根据mehow代码显示的问题。 结果是在工作表中select的单元格。
如果你的电子表格看起来像
那么这个代码
Sub DivRanges() Dim quotient As Range, numerator As Range, denominator As Range Set numerator = Range("A1:D1") Set denominator = Range("A2:D2") Set quotient = Range("A3:D3") Dim i As Long For i = 1 To quotient.Count quotient.Cells(i).Value = numerator.Cells(i).Value / denominator.Cells(i).Value Next i End Sub
给你
更新
不相邻单元格解决scheme
假设你的工作表
使用下面的代码
Sub DivRanges() Dim quotient As Range, numerator As Range, denominator As Range Set numerator = Range("A1, C1, D1, E1") Set denominator = Range("A2, C2, D2, E2") Set quotient = Range("A3, C3, D3, E3") Dim c As Range Dim i As Long i = 0 For Each c In quotient Range(c.Address) = Range(getNum(numerator.Address, i)) / Range(getNum(denominator.Address, i)) i = i + 1 Next End Sub Function getNum(str As String, i As Long) As String getNum = Split(str, ",")(i) End Function
结果是