当前位置: 首页 > 知识库问答 >
问题:

在宏中设置范围时的VBA运行时错误1004“应用程序定义或对象定义错误”

公西岳
2023-03-14

不幸的是,对于第一个项目来说,这很困难。

为了清晰起见(希望如此):主要思想是我需要从下拉列表的开头开始,复制列出的第一个字符串,然后将该字符串粘贴到列中。这会改变右边相邻的数值数据。然后,我想选择这个新更改的数值数据,并将其复制粘贴到同一个工作簿中F列第一个空白处的不同工作表中。然后,我想让代码遍历下拉列表,并对下拉列表中的所有51个字符串执行此操作。但是,每次迭代都需要将偏移量粘贴3列,才能将数据复制到其他工作表中的正确列。

以下是我到目前为止的代码

Option Explicit

Sub PtComp()
'
' PtComp Macro
'

'
Dim List1 As String
Dim Range1 As Range
Dim Line1 As Range
Dim i As Integer
Dim Begin As Range


ActiveWorkbook.Sheets("Sample Data Summary").Activate
List1 = Selection
Set Range1 = Evaluate(ActiveSheet.Range(List1).Validation.Formula1)
For Each Line1 In Range1
    Selection.Copy
    ActiveSheet.Range(Selection, Selection.End(xlDown)).Select
    ActiveSheet.Paste
    ActiveCell.Offset(0, 1).Select
    ActiveSheet.Range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    ActiveSheet.Selection.Copy
    ActiveWorkbook.Sheets("Pt Comparison").Activate
    Begin = ActiveSheet.Range("F1").End(xlDown).Offset(-1, 0)
    For i = 0 To 148 Step 3
    Begin.Offset(0, i).Select
    ActiveSheet.PasteSpecial Paste:=xlPasteValues
    Next i
    Next Line1

End Sub
Set Range1 = Evaluate(ActiveSheet.Range(List1).Validation.Formula1)

共有1个答案

司马耘豪
2023-03-14

您的代码假定List1包含有效的范围地址,因此“示例数据摘要”工作表上的活动单元格包含有效的范围地址。

显然情况并不总是这样。搜索关于on Error语句的更多细节,以了解如何处理这种情况。

您需要了解如何避免在Excel VBA宏中使用Select,并知道在严格的循环中执行剪贴板操作几乎是在Excel-VBA中可以执行的最慢的操作。

Set Range1 = Evaluate(Selection.Validation.Formula1)
 类似资料:
  • 我试图实现一个简单的Excel-VBA宏,让用户在文件资源管理器中浏览另一个工作簿,然后将该工作簿中的某些单元格复制到我的活动工作簿中。下面是我的简短代码: 该宏用于从所选工作簿(B2:C43)复制单元格,并将其复制到当前工作簿“配置”表上的单元格(A6:B47)中。当我运行宏时,我得到“运行时错误'1004':Range类的PasteSpecial方法失败”。调试器突出显示行:

  • 当我运行代码时,出现错误消息“对象'_worksheet'的方法'range'失败”,下面粘贴的第6行代码由调试器突出显示。当将引用更改为1样式表示法时,代码将按预期在目标工作表中生成粘贴的值。

  • 问题内容: 在Java中,是否可以在应用程序运行时动态创建类定义,然后创建该类的对象? 例如,正在运行的应用程序将读取一个文本文件,该文件包含要包含在新类中的类成员列表。然后,应用程序将基于成员列表定义类定义,然后使其实例化。 问题答案: 是的,这样做是有可能的,从理论上讲,您的类文件是字节代码,而字节代码最后是字节数组!然后可以使用defineClass(String,byte [],int,i

  • 当使用此sub标记复选框时,我正试图写入单元格 但是,如果我只是打开工作表并单击复选框,我会得到运行时错误'1004':object'_worksheet'的方法'range'失败错误。 令我感到奇怪的是,如果我在模块中首次按下一个带有以下代码的按钮,我不会再得到错误,即使它是我放入Workbook_open事件中的代码: 谢谢你的帮助,我是一个VBA新手!

  • 我一直在为我的公司开发一个Excel宏,该宏打开几个工作簿,分析它们的特定信息行,存储该行,然后在完成每个工作簿后,在两个页面中的一个页面上设置单个工作簿中单元格的水平选择值。我遇到的问题是,在尝试选择第二个页面时,我需要将数据放在上面,我得到一个运行时错误1004。 我可以做什么来修复这个错误?

  • 我是微服务新手,我为API gateway配置了zuul,为service registry配置了Eureka,我通过zuul API gateway注册并运行了3个微服务,没有任何问题,但当我手动关闭一个服务并尝试通过zuul访问时,会出现500个内部服务器错误。 错误消息。{“时间戳”:1568197371584,“状态”:500,“错误”:“内部服务器错误”,“消息”:“路由:RibbonR