【问题标题】:VBA: run-time error '1004' when I use worksheet and variable delarationVBA:使用工作表和变量声明时出现运行时错误“1004”
【发布时间】:2015-03-30 01:54:24
【问题描述】:
Public ws As Worksheet
Public Const Mpath As String = "H:\BankingGrp\MM Board rates\"

Dim USDON As Long, USDTN As Long, USDSN As Long, USD1W As Long, _
    USD2W As Long, USD3W As Long, USD1M As Long, USD2M As Long, _
    USD3M As Long, USD6M As Long, USD9M As Long, USD12M As Long


Sub Record()
Workbooks.Open Filename:=Mpath & Format(Date, "DD") & " " & _
               Format(Date, "MMM") & " " & Format(Date, "YYYY") & ".xls"
Set ws = ActiveWorkbook.Worksheets("BOARD RATE")

我应该使用 Range 声明并改用“Set USDON = Range("B15")”吗?

USDON = ws.Range(“B15”).Value
USDTN = ws.Range(“D17”).Value
USDSN = ws.Range(“F19”).Value
USD1W = ws.Range(“D21”).Value
USD2W = ws.Range(“D23”).Value
USD3W = ws.Range(“D25”).Value

End Sub

【问题讨论】:

  • 好吧,如果你尝试会发生什么? Edit 让我们知道! (不要指望人们会尝试您在问题本身中提出的可能解决方案。)
  • 如果它在文字赋值上失败,那是因为范围对象本身不存在或无法访问。将变量更改为 Range 类型不会阻止错误。工作表是否受到保护?

标签: vba excel object variable-declaration


【解决方案1】:

您的双引号符号不正确。它们不是标准的双引号,而是斜引号。例如,USDON = ws.Range(“B15”).Value 应该变为 USDON = ws.Range("B15").Value(注意 B15 周围的引号符号略有变化)。

相反,你的作业应该变成:

USDON = ws.Range("B15").Value
USDTN = ws.Range("D17").Value
USDSN = ws.Range("F19").Value
USD1W = ws.Range("D21").Value
USD2W = ws.Range("D23").Value
USD3W = ws.Range("D25").Value

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    相关资源
    最近更新 更多