繁体   English   中英

Excel VBA:将公式复制到任何活动单元格

[英]Excel VBA: Copying Formula to any active cell

我是VBA编码的新手,希望能在这里得到一些帮助。 我正在尝试创建对任何单元(不指定硬编码单元范围或引用)执行以下操作的代码:

  • 在活动单元格中输入公式
  • 向下复制(填充)10行

为了将公式插入ActiveCell,我尝试了以下操作:

Sub Test()
ActiveCell.formula = "=IF(ISBLANK(C5)*ISBLANK(D5),"",IF(ISBLANK(D5),(C5),CONCATENATE(C5,"" ["", D5, ""]"")))"
End Sub

但是,这会产生1004:应用程序定义或对象定义的错误

我试过为ActiveCell声明Range对象,但仍然遇到错误。

任何帮助,将不胜感激。

ActiveCell.formula = "=IF(ISBLANK(C5)*ISBLANK(D5),"""",IF(ISBLANK(D5),(C5),CONCATENATE(C5,"" ["", D5, ""]"")))" 

您错过了将第一组嵌入式报价加倍的机会。

您可以使用以下例程将公式从单元格复制到VBE兼容格式。 看看是否对您有帮助:

 Public Sub CopyExcelFormulaInVBAFormat()
 Dim strFormula As String
 Dim objDataObj As Object

 '\Check that single cell is selected!
 If Selection.Cells.Count > 1 Then
     MsgBox "Select single cell only!", vbCritical
     Exit Sub
 End If

 'Check if we are not on a blank cell!
 If Len(ActiveCell.Formula) = 0 Then
     MsgBox "No Formula To Copy!", vbCritical
     Exit Sub
 End If

 'Add quotes as required in VBE
 strFormula = Chr(34) & Replace(ActiveCell.Formula, Chr(34), Chr(34) & Chr(34)) & Chr(34)

 'This is ClsID of MSFORMS Data Object
 Set objDataObj = CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
 objDataObj.SetText strFormula, 1
 objDataObj.PutInClipboard
 MsgBox "VBA Format formula copied to Clipboard!", vbInformation

 Set objDataObj = Nothing

 End Sub

插入此例程之后。 您只需要在单元格中正常输入公式即可。 然后留在单元格上并运行此代码,它将复制到剪贴板。 转到VBE,然后按CTRL + V将代码粘贴到所需的位置。

最初发布于:

https://chandoo.org/forum/threads/copy-formula-from-excel-to-clipboard-in-vba-compatible-format.35997/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM