以下是我的代码目前的工作方式:
在位置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,因为每次代码运行时都会将模板复制到新位置。我试过了。
答案 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