如何选择不同工作表上的单元格以填充单元格旁边的单元格
我负责创建仓库地图。如何选择不同工作表上的单元格以填充单元格旁边的单元格
在数据我必须有模型,描述和位置。
什么我有是,我使用从第二页的数据填充到“地图”
即='1'!F2
当我试图拖动并用它来填补它变为='1'!g2
整条生产线的麻烦。我想它去='1'!F3
我看到它在做什么的逻辑......但我不希望它使用该逻辑..我希望它使用它下面的下一个单元格填充该单元格。
最简单的事情可能是复制,然后选择性粘贴>将数据转换为“1”到新工作表。然后,您可以拖动引用新工作表的公式,并按照预期行事。
编辑:根据您的原始问题,这将填充列的结果向右拖动,反之亦然。这实际上是做你的原始问题:
=INDEX(Sheet1!$F$2:$Z$8000,COLUMN(),ROW())
从A1开始并向任一方向拖动。要向左侧添加标题行或行,只需将行或列插入顶部或左侧(以保持公式发声)。
编辑:这是Transpose函数,per @ brettdj的建议。我觉得很难一起工作,但可以肯定使得它更清楚这是怎么回事:
在单元格F2:你的目标板的8000输入:
=TRANSPOSE(Sheet1!$F2:$Z8000)
然后,选中所有这些细胞,进入在其中一个单元格中编辑模式并执行Ctrl Shft Enter
来输入数组。如果您必须调整源范围的大小,我相信您必须使用正确的范围重复这些步骤。我自己是索引迷,所以会坚持下去。偏移是不稳定的,所以我会避免它。如果我有任何最后的编辑错误,@brettdj会帮助我们。
由于您想要的是非本机行为,因此可能需要编写一个小的VBA宏来执行复制,并将其分配给键盘快捷键。
下面是一个简单的例子,将公式单元格复制到右侧,向下更新参考单元格(保留公式中的绝对/相对设置)。
它假定A1
样式地址,仅当活动单元格包含引用单个单元格的公式(如果不是,则静默结束)时才起作用。将默默覆盖目标单元格中的任何内容。
Sub CopyToRight()
Dim clFrom As Range
Dim clAddr As Range
Dim addr As String
On Error GoTo EH
Set clFrom = ActiveCell
If clFrom.Formula Like "=*!*" Then
Set clAddr = Range(Mid(clFrom.Formula, 2))
If clAddr.Count = 1 Then
If clFrom.Formula Like "=*!$*$*" Then
addr = clAddr.Offset(1, 0).Address(True, True)
ElseIf clFrom.Formula Like "=*!$**" Then
addr = clAddr.Offset(1, 0).Address(False, True)
ElseIf clFrom.Formula Like "=*!*$*" Then
addr = clAddr.Offset(1, 0).Address(True, False)
Else
addr = clAddr.Offset(1, 0).Address(False, False)
End If
clFrom.Offset(0, 1).Formula = "='" & clAddr.Worksheet.Name & "'!" & addr
End If
End If
clFrom.Offset(0, 1).Select
EH:
End Sub
谢谢克里斯,我会试试这个。 – user1123546 2011-12-30 23:08:41
感谢Doug,我会这样做,除了8000 +项目我需要填充“地图”。我开始这样做,然后认为那是一个更简单的方法。我正在使用间接参数......但这会导致需要更改一些值以使其正确。我知道必须有一个更简单的方法,我太想想它了。 – user1123546 2011-12-30 22:15:13
我需要更好地描述您正在复制的工作表以及期望的最终结果。这听起来像是一个8000行的数据,你想读入8000列。因为您只是想拖动公式,所以我认为只需将数据转换为中间表就足够了,但听起来还有其他问题。 – 2011-12-30 23:12:59
+1。你也可以使用'TRANSPOSE'公式directlty(数组输入)或'OFFSET'。 'TRANSPOSE'更加透明和可审计。 – brettdj 2011-12-31 00:52:52