Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.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
Database 将数据从一个工作簿复制到新工作簿,并按特定标题保存_Database_Excel_Copy Paste_Vba - Fatal编程技术网

Database 将数据从一个工作簿复制到新工作簿,并按特定标题保存

Database 将数据从一个工作簿复制到新工作簿,并按特定标题保存,database,excel,copy-paste,vba,Database,Excel,Copy Paste,Vba,我有一个文件,它是数据库,包含来自不同班级的所有学生的数据。我希望excel通过将数据从数据库复制到新文件来创建类文件。。。我正在使用下面提到的代码,这些代码工作得很好,但它只处理G列之前的数据,现在数据已经扩展到Z列,它不工作,这给了我运行时错误 “注意B列标题类别”,即新保存文件的标题 Sub proSaveDateClasswise() Range("I1").Value = "Class" Columns("B:B").AdvancedFilter Action:=xlFilterCo

我有一个文件,它是数据库,包含来自不同班级的所有学生的数据。我希望excel通过将数据从数据库复制到新文件来创建类文件。。。我正在使用下面提到的代码,这些代码工作得很好,但它只处理G列之前的数据,现在数据已经扩展到Z列,它不工作,这给了我运行时错误

“注意B列标题类别”,即新保存文件的标题

Sub proSaveDateClasswise()

Range("I1").Value = "Class"
Columns("B:B").AdvancedFilter Action:=xlFilterCopy, copyToRange:=Columns( _
    "I:I"), unique:=True
Range("J1").Value = "Class"

Dim cell As Range
Dim curPath As String

curPath = ActiveWorkbook.Path & "\Extracted Files\\"

If Len(Dir(curPath, vbDirectory)) = 0 Then
    MkDir (curPath)
End If

Application.ScreenUpdating = False
Application.DisplayAlerts = False

For Each cell In Range("I:I")
    If cell.Value <> "Branch" And cell.Value <> "" Then
        Range("J2").Value = cell.Value
        Range("A:G").AdvancedFilter Action:=xlFilterCopy, _
            criteriarange:=Range("J1:J2"), copyToRange:=Range("L:R"), unique:=False
        Range(Range("L1:R1"), Range("L1:R1").End(xlDown)).Copy
        Workbooks.Add
        ActiveSheet.Paste
        ActiveWorkbook.SaveAs Filename:=curPath & cell.Value & ".xlsx", _
            FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
        ActiveWindow.Close
        Range(Range("L1:R1"), Range("L1:R1").End(xlDown)).ClearContents
    End If
Next cell

Columns("I:R").Delete

Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub
Sub-proSaveDateClasswise()
范围(“I1”).Value=“类”
列(“B:B”)。高级筛选器操作:=xlFilterCopy,copyToRange:=列(_
“I:I”),唯一:=真
范围(“J1”).Value=“类”
暗淡单元格作为范围
将路径设置为字符串
curPath=active工作簿.Path&“\Extracted Files\\”
如果Len(Dir(curPath,vbDirectory))=0,则
MkDir(curPath)
如果结束
Application.ScreenUpdating=False
Application.DisplayAlerts=False
对于范围内的每个单元格(“I:I”)
如果cell.Value为“Branch”和cell.Value为“”,则
范围(“J2”).Value=单元格.Value
范围(“A:G”)。高级筛选器操作:=xlFilterCopy_
criteriarange:=范围(“J1:J2”)、copyToRange:=范围(“L:R”)、唯一性:=假
范围(范围(“L1:R1”)、范围(“L1:R1”)。结束(xlDown))。复制
工作手册。添加
活动表。粘贴
ActiveWorkbook.SaveAs文件名:=curPath&cell.Value&“.xlsx”_
FileFormat:=xlOpenXMLWorkbook,CreateBackup:=False
活动窗口,关闭
范围(范围(“L1:R1”)、范围(“L1:R1”).End(xlDown)).ClearContents
如果结束
下一个细胞
列(“I:R”)。删除
Application.ScreenUpdating=True
Application.DisplayAlerts=True
端接头

在我们进一步讨论之前,我认为这里的主要问题是当前宏使用G以外的一些列来选择唯一的类。这意味着必须重写整个代码才能使其按预期工作。我建议您提供一些带有虚拟数据的输入和输出文件来处理。

是的,我可以提供演示文件,但不知道如何在此处共享/上传文件。。。如果你看到编码它的复制范围(“A:G”),我是否可以用Z代替G,这样就可以添加更多的列???