[英]Excel VBA: Copying Formula to any active cell
我是VBA编码的新手,希望能在这里得到一些帮助。 我正在尝试创建对任何单元(不指定硬编码单元范围或引用)执行以下操作的代码:
为了将公式插入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将代码粘贴到所需的位置。
最初发布于:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.