Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.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
Excel编译错误:Can';t分配给只读属性_Excel_Vba - Fatal编程技术网

Excel编译错误:Can';t分配给只读属性

Excel编译错误:Can';t分配给只读属性,excel,vba,Excel,Vba,我在Excel中收到一个关于分配到只读属性的错误,代码如下: 1 Sub GetSheets() 2 Path = "C:WHERE MY DOCUMENTS ARE KEPT" 3 Filename = Dir(Path & "*.CSV") 4 Do While Filename <> "" 5 Workbooks.Open Filename:=Path & Filename, ReadOnly:=True 6

我在Excel中收到一个关于分配到只读属性的错误,代码如下:

1    Sub GetSheets()
2    Path = "C:WHERE MY DOCUMENTS ARE KEPT"
3    Filename = Dir(Path & "*.CSV")
4      Do While Filename <> ""
5      Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
6         For Each Sheet In ActiveWorkbook.Sheets
7         Sheet.Copy After:=ThisWorkbook.Sheets(1)
8      Next Sheet
9         Workbooks(Filename).Close
10         Filename = Dir()
11      Loop
12    End Sub
1子GetSheets()
2 Path=“C:保存我的文档的位置”
3文件名=目录(路径和“*.CSV”)
4当文件名为“”时执行此操作
5工作簿。打开文件名:=路径和文件名,只读:=真
ActiveWorkbook中的每张工作表6张。工作表
7页。复制后:=此工作簿。页(1)
8下一页
9个工作簿(文件名)。关闭
10 Filename=Dir()
11环路
12端接头

我猜您在
本工作簿的
模块中有发布的代码

此工作簿
表示工作簿本身,它具有内置(只读)
路径
属性

Path
重命名为(例如
myPath
),您应该可以

Sub GetSheets()
    'best to use a Constant here...
    Const THE_PATH As String = "C:\WHERE\MY DOCUMENTS\ARE KEPT\"

    Dim Filename as String, wb As Workbook, Sheet As Worksheet

    Filename = Dir(THE_PATH  & "*.CSV")
    Do While Filename <> ""
         Set wb = Workbooks.Open(Filename:=THE_PATH & Filename, ReadOnly:=True)
         For Each Sheet In wb.Sheets
             Sheet.Copy After:=ThisWorkbook.Sheets(1)
         Next Sheet
         wb.Close
         Filename = Dir()
      Loop
End Sub
Sub-GetSheets()
“这里最好使用一个常数。。。
将_路径设置为String=“C:\WHERE\MY DOCUMENTS\aread\”
Dim文件名为字符串,wb为工作簿,工作表为工作表
Filename=Dir(路径&“*.CSV”)
文件名“”时执行此操作
设置wb=Workbooks.Open(文件名:=路径和文件名,只读:=True)
对于wb.Sheets中的每张工作表
Sheet.Copy After:=此工作簿.Sheets(1)
下一页
wb.关闭
Filename=Dir()
环
端接头

我猜您在
本工作簿的
模块中有发布的代码

此工作簿
表示工作簿本身,它具有内置(只读)
路径
属性

Path
重命名为(例如
myPath
),您应该可以

Sub GetSheets()
    'best to use a Constant here...
    Const THE_PATH As String = "C:\WHERE\MY DOCUMENTS\ARE KEPT\"

    Dim Filename as String, wb As Workbook, Sheet As Worksheet

    Filename = Dir(THE_PATH  & "*.CSV")
    Do While Filename <> ""
         Set wb = Workbooks.Open(Filename:=THE_PATH & Filename, ReadOnly:=True)
         For Each Sheet In wb.Sheets
             Sheet.Copy After:=ThisWorkbook.Sheets(1)
         Next Sheet
         wb.Close
         Filename = Dir()
      Loop
End Sub
Sub-GetSheets()
“这里最好使用一个常数。。。
将_路径设置为String=“C:\WHERE\MY DOCUMENTS\aread\”
Dim文件名为字符串,wb为工作簿,工作表为工作表
Filename=Dir(路径&“*.CSV”)
文件名“”时执行此操作
设置wb=Workbooks.Open(文件名:=路径和文件名,只读:=True)
对于wb.Sheets中的每张工作表
Sheet.Copy After:=此工作簿.Sheets(1)
下一页
wb.关闭
Filename=Dir()
环
端接头

请问错误发生在哪一行?上述代码中没有编译错误。在VBA项目中是否有其他代码?我猜错误在其他地方:)我将代码放在“此工作簿”中以编译数据。下面的答案使我困惑。(请原谅,我是新手)但当前路径是所有.csv文件所在的位置。我看到的唯一错误代码是告诉我上面所述的内容。错误似乎在路径内。请问错误发生在哪一行?上面的代码中没有编译错误。在VBA项目中是否有其他代码?我猜错误在其他地方:)我将代码放在“此工作簿”中以编译数据。下面的答案使我困惑。(请原谅,我是新手)但当前路径是所有.csv文件所在的位置。我看到的唯一错误代码是告诉我上面说了什么。错误似乎在路径内。哇,非常好。我可以确认,如果粘贴到该工作簿中,它确实会给出编译错误。非常好。我感谢您的帮助。如果我将第2行的路径重命名为path=my path,我会将其放入“thisworkbook”中,我会收到类似/相同的错误。我的目标是将500个文件合并成一个。这就是我的想法,如果有更好的方法,我会全神贯注地使用“thisworkbook”。感谢againSub GetSheets()Path=“C:\Users\chall\Desktop\Visual Basic”Filename=Dir(Path&“*.CSV”)在文件名为“”的工作簿时执行此操作。打开文件名:=路径和文件名,只读:=ActiveWorkbook.Sheets Sheet中每个工作表的True。复制时间:=此工作簿.Sheets(1)下一工作表工作簿(文件名).Close Filename=Dir()循环结束sub如果我将Path=(例如)“c:\users\chall\desktop\visualbasic”这一行变为红色。我很抱歉打断了你的回答。哇,很好。我可以确认,如果粘贴到该工作簿中,它确实会给出编译错误。非常好。我感谢您的帮助。如果我将第2行的路径重命名为path=my path,我会将其放入“thisworkbook”中,我会收到类似/相同的错误。我的目标是将500个文件合并成一个。这就是我的想法,如果有更好的方法,我会全神贯注地使用“thisworkbook”。感谢againSub GetSheets()Path=“C:\Users\chall\Desktop\Visual Basic”Filename=Dir(Path&“*.CSV”)在文件名为“”的工作簿时执行此操作。打开文件名:=路径和文件名,只读:=ActiveWorkbook.Sheets Sheet中每个工作表的True。复制时间:=此工作簿.Sheets(1)下一工作表工作簿(文件名).Close Filename=Dir()循环结束sub如果我将Path=(例如)“c:\users\chall\desktop\visualbasic”这一行变为红色。我很抱歉打断了你的回答。