将Excel区域拆分为单个单元格

将Excel区域拆分为单个单元格,excel,vba,range,cells,Excel,Vba,Range,Cells,在Excel 2010中,我有一个VBA函数,它搜索工作表并根据三个值查找匹配项。一旦找到匹配项,它将返回一个范围,该范围是一整行数据。现在在一个单元格中的Excel工作表中,我调用了该函数。我可以使用公式将该范围拆分为单个单元格。这基本上就像找到行,然后从调用单元格开始复制粘贴单元格。我唯一能想到的就是把范围保存在一个单元格里 A1 = {my range} 之后的每个单元格使用一个索引函数,如 A2 = INDEX(A1, 1,1) A3 = INDEX(A1, 1,2) A4 = IND

在Excel 2010中,我有一个VBA函数,它搜索工作表并根据三个值查找匹配项。一旦找到匹配项,它将返回一个范围,该范围是一整行数据。现在在一个单元格中的Excel工作表中,我调用了该函数。我可以使用公式将该范围拆分为单个单元格。这基本上就像找到行,然后从调用单元格开始复制粘贴单元格。我唯一能想到的就是把范围保存在一个单元格里

A1 = {my range}
之后的每个单元格使用一个索引函数,如

A2 = INDEX(A1, 1,1)
A3 = INDEX(A1, 1,2)
A4 = INDEX(A1, 1,3)
寻找任何建议。我可以发誓,我可以使用一个非VBA函数,将一个范围分割成单个单元格

用一个例子编辑: 在我的主工作表中,我有大量的数据,其中一些有错误。我在另一张工作表中查找有错误的

main worksheet
status, height, width, weight, sheet, m, d, z, e
ok, 1, 2, 5, , 100, 5, 7, 5
err, 1, 2, 6, TEMPA 
err, 1, 2, 7, TEMPA
ok, 1, 2, 8, , 102, 7, 9, 8
ok, 1, 2, 9, , 104, 8, 7, 0
高度、宽度和重量的组合是唯一的。助手工作表与主工作表相同,但将包含缺少的数据

TEMPA
ok, 1, 2, 6, , 25, 66, 0, 1
ok, 1, 2, 7, , 99, 7, 2, 6
所以本质上我想在高度、宽度和重量上加入这两者,但只针对那些有错误的。助手工作表的名称将有所不同,但这是预先计算的。我编写了代码,以获取三个唯一条件,转到helper工作表,进行匹配,然后返回由匹配行组成的range对象

function GetMyRange(h, wd, wt, sht) as Range
   'do the match here
end function

该函数的工作原理是,我可以设置一些调试语句,并且正在进行正确的匹配。但是,回到主工作表中,如何获取范围对象并将范围对象的各个元素放入每个单元格中以“修复”错误

不太清楚你的情况,但我有这个

这将给出将多个范围提取为单个范围的示例

Sub SplitRange()
Dim rn As Range
Dim c As Range

Set rn = Range("A1:A8")
For Each c In rn.Cells
    MsgBox StrRange(c.Row, c.Column)
Next
End Sub

Function StrRange(ByVal nRow As Single, ByVal nCol As Single) As String
Dim sC As String
Dim nC, nRest, nDivRes As Integer

sC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
nC = Len(sC)

nRest = nCol Mod nC
nDivRes = (nCol - nRest) / nC

If nDivRes > 0 Then StrRange = Mid(sC, nDivRes, 1)
StrRange = StrRange & Mid(sC, nRest, 1) & Format(nRow)
End Function

希望这些帮助和所有需要这样做的人。

结果太复杂了,真的做不到。我想写一个函数来填充几个单元格。相反,我转而只编写一个子例程,它将遍历所有行并复制/复制匹配的范围。感谢所有人的帮助。

是否要将其替换为在一个单元格中返回整行?或者您仍然希望它这样做吗?我希望返回整行,但将源中的单元格放在目标中,但放在单个单元格中。就像复制/粘贴一样。您需要使用一个子例程来执行此操作,工作表函数或从工作表中调用的UDF无法执行此类操作。因此,在VBA函数中,请遍历每个源单元格并将其分配给新的目标单元格?这就是我想做的,但是我如何引用调用函数的单元格呢?您可以使用数组公式输入函数,它将填充您输入公式的单元格。有助于提前知道需要多少细胞。。。有关此方法的详细信息,请查阅数组公式。这里有很多参考资料: