我试图复制并粘贴几个单元格,保持格式,并将它们链接到表格。
目前我有一张桌子,但我从另一张表中引用它 e.g:
=Sheet2!A1 =Sheet2!B1 =Sheet2!C1
=Sheet2!D1 =Sheet2!E1
我试图一次将它复制4行并粘贴多次,这些值会保持当前的单元格ID,但我希望每次将它们增加1,例如,当我粘贴我希望他们是:
=Sheet2!A2 =Sheet2!B2 =Sheet2!C2
=Sheet2!D2 =Sheet2!E2
有没有比手动将所有单元ID更改为+1?
更快的方法谢谢!
答案 0 :(得分:2)
选择所需的单元格并在VBA中运行以下命令:
Public Sub TestMe()
Dim myCell As Range
For Each myCell In Selection
If myCell.HasFormula Then myCell.Formula = myCell.Formula & "+1"
Next myCell
End Sub
如果你按了太多次,这就是最后+1
:
Public Sub UnTestMe()
Dim myCell As Range
For Each myCell In Selection
If myCell.HasFormula Then myCell.Formula = Left(myCell.Formula, _
Len(myCell.Formula) - 2)
Next myCell
End Sub
关于@SJR的评论,如果您想更改单元格的参考地址,这是一种可能的解决方法:
Public Sub TestMe()
Dim myCell As Range
For Each myCell In Selection
If myCell.HasFormula Then myCell.Formula = Left(myCell.Formula, _
Len(myCell.Formula) - 1) & 2
Next myCell
End Sub
只需将&2
更改为您要引用的数字。
答案 1 :(得分:0)
数学技巧。
=INDIRECT("Sheet2!A"&INT(ROW()/4)-*offset*)
首先添加偏移量,然后您可以根据需要复制并粘贴它。
ROW()
返回公式所在的行号。例如,如果您键入的公式位于单元格A20
中,则ROW()
会返回20.即如果您需要在Sheet2!A1
中显示A20
,则偏移量应为4.公式变为=INDIRECT("Sheet2!A"INT(ROW()/4)-4)
答案 2 :(得分:0)
i.toStream.sequence.map(flatten) //IO[Stream[String]]
修改上面的代码。这样做是选择单元格A99999,然后使用Ctrl和向上箭头命令选择具有值并偏移1的最后一行,以便它实际选择下面的单元格。然后,您可以将任何内容粘贴到该单元格中。
答案 3 :(得分:0)
这是我为自己编写的一些代码。使用可变的增量和行距进行编辑非常简单。
Sub MakeFormulas()
Dim sh As Worksheet: Set sh = ActiveWorkbook.Sheets("YourWorksheet")
Dim field As String
Dim formula As String
Dim i As Integer: i = 2 'Every x Line you want to Paste your Formula to
Dim a As Integer: a = 7 'Starting Row Number of Data on the Sheet you want to fetch
Do While i < 1000 'How many Rows down you wan't to paste it to
field = "C" + CStr(i) 'Column where you paste to + The Row Number
formula = "=Switches!A" + CStr(a) 'The Reference Column + Row Number which gets incremented.
sh.Range(field) = formula
a = a + 1 'By which Number your FOrmula should get incremented
i = i + 2 'Every i (Second) row gets the Formula Pasted.
Loop
End Sub