使用VBA划分不相邻的单元格

有关如何解决这个问题的任何build议?

(更新)

numeratordenominator是包含整数值的范围。

我想按这些范围的单元格划分一个单元格,例如:

 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的单元格。

例

如果你的电子表格看起来像

BEF

那么这个代码

 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 

结果是

结果