【发布时间】:2017-10-12 17:52:57
【问题描述】:
我正在尝试创建一个从单元格或范围获取值的子例程,将单元格值中出现的“{NAME}”替换为“John”,选择并复制要粘贴的修改范围某处并将原始单元格值恢复为“{NAME}”。
我得到了一些乱七八糟的代码,逻辑有效,但每当我粘贴剪贴板内容时,我得到的是“{NAME}”值而不是“John”。
Sub BrandTemplate()
If Worksheets("Sheet1").OLEObjects("Option_1").Object.Value = True Then
Dim tmp As String
Dim n As String
Dim ss as String
tmp = "John"
ss = Worksheets("Sheet1").Range("A1").Value
n = Replace(ss, "{NAME}", tmp)
MsgBox n
Worksheets("Sheet1").Range("A1").Value = n
Worksheets("Sheet1").Range("A1").Copy
ss = Worksheets("Sheet1").Range("A1").Value
MsgBox ss + " ss content after replace"
n = Replace(ss, tmp, "{NAME}")
MsgBox n + " n content after restore"
Worksheets("Sheet1").Range("A1").Value = n
MsgBox n + " n cell content"
End If
End Sub
我相信 Excel 会在您粘贴时实时获取选择要复制的单元格的内容。而不仅仅是当您指示复制时单元格的静态内容。
有没有办法做到这一点?
我假设另一种方法是包含 forms 2.0 对象并将字符串直接复制到剪贴板?
大师能开导我吗?
感谢您的宝贵时间!....
【问题讨论】:
-
我是否理解正确:您想将给定单元格的内容放在剪贴板中,并替换其中的某个部分?这将使 Excel 脱离等式。如果是这样,请查看stackoverflow.com/questions/5552299/…。
-
我使用 Forms 2.0 方法让它工作
-
随意发布此示例作为答案并自己接受,这样,其他遇到此问题的人也会受益。
-
为什么不替换目标单元格中的标记(即在粘贴之后)?