Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA:使用工作表和变量增量时出现运行时错误“1004”_Vba_Excel_Object_Variable Declaration - Fatal编程技术网

VBA:使用工作表和变量增量时出现运行时错误“1004”

VBA:使用工作表和变量增量时出现运行时错误“1004”,vba,excel,object,variable-declaration,Vba,Excel,Object,Variable Declaration,我应该使用范围声明并使用Set USDON=RangeB15吗 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, _

我应该使用范围声明并使用Set USDON=RangeB15吗

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")

您的双引号符号不正确。它们不是标准的双引号,而是有角度的引号。例如,USDON=ws.Range“B15”。值应变为USDON=ws.RangeB15.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

End Sub

好吧,如果你真的这么做会怎么样?让我们知道!不要期望人们尝试你建议的东西作为问题本身的可能解决方案。如果它在文字赋值上失败,那是因为范围对象本身不存在或无法访问。将变量更改为范围类型不会阻止错误。工作表是否受保护?
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