首页 > 解决方案 > 有关运行时错误 9 的信息

问题描述

我正在尝试将值范围从 excel 中的一张表复制到另一张表。我已经从工作表的另一部分复制了这个公式,但是我发现了运行时错误 9。

Sub SaveJambStudEC()
'
' SaveCalcsJambEC Macro
'
Dim page As Integer
    page = Cells(4, "T").Value

    Range("A70:AN70").Select
    Selection.Copy

    Range("A71").Select
    ActiveCell.Offset(page, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Range("A1:O63").Select
    Selection.Copy
    Sheets("10.3 JambCalcs EC").Select
        Range("A1").Select
    ActiveCell.Offset((page - 1) * 63, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone _
        , SkipBlanks:=False, Transpose:=False
   Selection.PasteSpecial Paste:=xlPasteFormats

    Sheets("9.3 Jamb Design EC").Select

    Range("T5").Select
    Selection.Copy
    Range("N9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Range("T31").Value = 0

    Call JambECsetDesignOptions
    Call CopyJambOptiValues

    Range("J9").Activate
End Sub

标签: excelvbaexcel-formula

解决方案


使用下面的代码,您将检查是否存在具有该名称的工作表。如果您没有收到任何消息框,则表示没有具有此类名称的工作表

Option Explicit

Sub test()

    Dim ws As Worksheet

    For Each ws In ThisWorkbook.Worksheets

        If ws.Name = "10.3 JambCalcs EC" Then
            MsgBox "Sheet Appears"
            Exit Sub
        End If

    Next ws

End Sub

笔记

“ThisWorkbook”是指代码包含的工作簿。如果您想清楚地声明工作簿,您可以声明一个变量 'Dim wb as Workbook',然后设置工作簿 'Set wb=Workbooks("workbook name")'


推荐阅读