【发布时间】:2017-08-21 22:43:14
【问题描述】:
我基本上是想让在一张纸上采取的行动反映在另一张纸上。将 A1 复制并粘贴到 Sheet1 上的 B1?将 A1 复制并粘贴到 Sheet2 上的 B1。问题是,它总是需要引用活动单元格,我不知道如何以可用的格式保存活动单元格的地址。
这是我想要完成的场景,用非常简单的英语:
如果 Cell 是 Sheet1 上的 ActiveCell,则在 Sheet2 上的单元格行下方插入行(例如,如果 Sheet1!A1 是活动单元格,则在 Sheet2 第 1 行下方插入行)。
在 Sheet1 上:复制 ActiveCell.Row 并插入到 ActiveCell.Row 下方。
在 Sheet2 上:执行相同的操作,但在 Sheet2 上的相应行上,除了我想将其粘贴到步骤 1 中新插入的行中。因此,如果我复制 Sheet1 第 1 行并将其插入到第 1 行下方2,我想复制Sheet2第1行并将其粘贴到步骤1的新行中。
返回Sheet1,使用InputBox从用户那里获取一个值,将该值插入Range("D" & (ActiveCell.Row))
除了Sheet2 部分外,我已经完成了所有工作,如果在Sheet1 上复制/插入之前无法输入该行,它会破坏公式。我已经手动完成了这些步骤,如果我可以对其进行编码,这一切都可以工作。
子按钮18_Click()
Dim Row_Source As Range
Dim WS As Worksheet, WS2 As Worksheet
Dim Day_Num As String
Dim Day_Dest As Range
Dim PRL As String
Dim Address As String
Dim RowNum As Long
Dim Cell As Range
Set Cell = ActiveCell ' just in case you'll decide to give-up on the "bad practice" of using ActiveCell
RowNum = Cell.Row
Set WS = ThisWorkbook.Sheets("Protocols")
Set WS2 = ThisWorkbook.Sheets("Formulas")
With WS
PRL = .Range("B" & RowNum).Value
Day_Num = InputBox("Please enter a day number to add to: " & PRL, "Add New Day")
If Day_Num <> "" Then
Set Row_Source = .Rows(RowNum)
End If
End With
With WS2
If Day_Num <> "" Then
Row_Source.Offset(1).Insert Shift:=xlDown
Application.CutCopyMode = False
End If
End With
With WS
If Day_Num <> "" Then
Row_Source.Copy
Row_Source.Offset(1).Insert Shift:=xlDown
Application.CutCopyMode = False
.Range("D" & RowNum + 1).Value = Day_Num
End If
End With
With WS2
If Day_Num <> "" Then
Set Row_Source = .Rows(RowNum)
Row_Source.Copy
Row_Source.Offset(1).Select
Row_Source.PasteSpecial
Application.CutCopyMode = False
End If
End With
结束子
【问题讨论】:
-
re: '我有这一切工作......' 有什么工作?我没有看到代码。阅读minimal reproducible example。
-
糟糕,忘记粘贴了。谢谢。
-
澄清一下,这只是工作代码。我一直试图将参考地址转移到另一张纸上,所以我没有任何东西可以做其他步骤。
-
@Trevor
Sheet2叫什么名字? -
Sheet2 是“公式”