在另一个工作表中粘贴单元格的位置 - Excel VBA

时间:2018-03-24 23:06:29

标签: excel excel-vba vba

以下是我的代码目前的工作方式:

在位置B5的工作表1上,单元格的值为Dog。在表2,C15,粘贴位置,值也是Dog。

我想要的是C15 = $ B $ 5。通过这种方式,我可以在工作表1上更改B5,在工作表2上也可以更改C15。

我认为我可以使用特殊粘贴,但无法找到任何可行的,因为它不是真正的粘贴功能。

我以为我可以使用它:

Sheets("Projects").Range(LastRow, "B").Value =_ 
Sheets("Database").Range(Newproject - Masterrow + 1, "C").Value

但它不起作用,所以我在这里......

当前代码: 代码:

Sub FindProjectName() 
Dim LastRow As Long
Dim Newproject As Long
Dim MasterTemplate As Range
Dim Masterrow As Long


'MasterTemplate is the database entry template.
Masterrow = Worksheets("Database").Range("MasterTemplate").Rows.Count 
LastRow = Sheets("Projects").Cells(Rows.Count, "B").End(xlUp).Row 
Newproject = Sheets("Database").Cells(Rows.Count, "C").End(xlUp).Row 


Sheets("Projects").Cells(LastRow, "B").Copy Sheets("Database").Cells(Newproject - Masterrow + 1, "C") 


With Sheets("Database")
    .Range("DBASE").Rows(1).Copy 
    .Range("DBASE").Rows(Newproject - Masterrow).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
End With
End Sub

我不能只使用= SheetName!B5,因为每次代码运行时都会将模板复制到新位置。我试过了。

1 个答案:

答案 0 :(得分:1)

以下代码将完成您在问题第一部分中描述的内容。一旦你了解它是如何工作的,我认为你将能够将它应用到你的情况中。如果没有,请随时提问。

Sub formulaTest()
Dim sh1 As Worksheet, r1 As Range, r2 As Range
Set sh1 = Worksheets("Sheet1")
Set r1 = sh1.Range("B5")
r1 = "Dog"
Set r2 = Worksheets("Sheet2").Range("C15")
r2.formula = "=" & sh1.Name & "!" & r1.Address
End Sub

以下是您在后续评论中提供的代码以及显示其工作的动画gif(除了覆盖最后一项,“6”)

Sub formulaTester()
Dim Feeder As Worksheet
Dim OneCell As Range
Dim TwoCell As Range
Set Feeder = Sheets("Projects")
Set OneCell = Feeder.Range("B" & Rows.Count).End(xlUp)
OneCell = "Cow"
Set TwoCell = Sheets("Tester2").Range("C17")
TwoCell.formula = "=" & Feeder.Name & "!" & OneCell.Address
End Sub

enter image description here