【问题标题】:Copying single cell contents and formating to new cell将单个单元格内容和格式复制到新单元格
【发布时间】:2015-01-24 01:32:18
【问题描述】:

我正在尝试创建一个代码,在选择特定单击框时,特定单元格的内容将复制到新页面上的新单元格。我目前拥有的代码是:

Sub CBCR71b_Click()
If ActiveSheet.CheckBoxes("CBCR71b").Value = 1 Then
Sheets("ELA Output").Range("CR7.1b").Value = Sheets("ELA").Range("cr1b").Value
Else
Sheets("ELA Output").Range("CR7.1b").Value = ""
End If

如果我只想复制单元格的值,这可以正常工作。在这个项目中,这将是文本。但现在我需要能够移动某些单词有粗体或斜体的文本。上面的代码忽略了这一点。

此站点上的其他类似问题涉及一系列单元格,因此不确定点击框是否正在运行干扰。我尝试用 .font.bold 替换 .value,但没有任何反应。

任何帮助将不胜感激!

【问题讨论】:

  • 你可以试试:工作表复制目标的东西。见Tim's answer
  • 蒂姆昨天的回答复制了粗体等!非常感谢。我唯一注意到的是,在输出页面上,我对边框进行了着色以使打印版本看起来不错。 Tim 的代码去掉了输出单元格的边框。
  • 按照 Santosh 在该帖子中的评论尝试。也许您也可以尝试复制和特殊粘贴。

标签: excel vba


【解决方案1】:

您可以使用 AdvancedFilter 来复制数据:

Sub copyAdvancedFilter()

Dim rnSource As Range
Dim rnTarget As Range

    Set rnSource = Range("A1:A2")
    Set rnTarget = Range("C1:C2")

    rnSource.AdvancedFilter Action:=xlFilterCopy, _
                                CopyToRange:=rnTarget
End Sub

只需调整你的功能。

如果有效,请告诉我。

干杯! :wq!

【讨论】:

  • 对此我深表歉意,但我对此很陌生,不知道该怎么做。我是否将此代码放入现有代码中?另外,对于范围(“A1:A2”),我可以只输入单元格的名称,如“CR7.1b”吗?
  • 你好保罗,我想你可能已经解决了......对吧?如果不是,请确认您提到的范围是否命名为“CR7.1b”。如果是这样,请将“SET”范围名称替换为您的范围名称并替换您的行:'Sheets("ELA Output").Range("CR7.1b").Value = Sheets("ELA").Range("cr1b ").Value',代码为:'rnSource.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=rnTarget',好吗?干杯!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-04
  • 2022-12-07
  • 2017-02-02
相关资源
最近更新 更多