我是VBA编码新手,希望我能在这里得到一些帮助。我正在尝试创建代码,为任何单元格执行以下操作(不指定硬编码单元格区域或引用):
尝试将公式插入 ActiveCell 我尝试过:
Sub Test()
ActiveCell.formula = "=IF(ISBLANK(C5)*ISBLANK(D5),"",IF(ISBLANK(D5),(C5),CONCATENATE(C5,"" ["", D5, ""]"")))"
End Sub
然而,这产生了 1004:应用程序定义或对象定义的错误
我已尝试为 ActiveCell 声明范围对象但仍会遇到错误。
对此的任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
ActiveCell.formula = "=IF(ISBLANK(C5)*ISBLANK(D5),"""",IF(ISBLANK(D5),(C5),CONCATENATE(C5,"" ["", D5, ""]"")))"
你错过了第一套嵌入式报价的加倍。
答案 1 :(得分:0)
您可以使用以下例程将公式从单元格复制到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将代码粘贴到所需的位置。
最初发布于: