gpt4 book ai didi

excel - 从一个文件中随机复制数据,然后使用宏将其随机粘贴到其他 Excel 中

转载 作者:行者123 更新时间:2023-12-02 21:30:49 24 4
gpt4 key购买 nike

我试图通过在我的计算机中浏览来提取 Excel 文件 (2) 内的文件 -(1)。并从文件(1)的不同单元格中随机提取数据并将其粘贴到文件(2)中。
我是初学者,试图从不同的程序中复制一些片段以使其工作。我编写了一个可以正常工作的代码。

我遇到一些问题。a)当我逐个复制和粘贴每个单元格时,程序太长,并且我的屏幕多次闪烁白色。 (我尝试了 Application.EnableEvents = False 但它不起作用。可能是我不知道在哪里准确插入它)

b)一旦我将文件(1)中的数据复制到文件(2)内,就可以完成吗?文件(1)可以关闭(或从浏览链接中松开)吗?

c) 代码可以缩短吗? (例如复制在一起和粘贴在一起等)。我必须从另外 10 个单元格复制数据。

Sub PullData()
Dim uploadfile As Variant
Dim uploader As Workbook
Dim CurrentBook As Workbook

Set CurrentBook = ActiveWorkbook
MsgBox ("Please select uploader file to be reviewed")
uploadfile = Application.GetOpenFilename()
If uploadfile = "False" Then
Exit Sub
End If

Workbooks.Open uploadfile
Set uploader = ActiveWorkbook
With uploader
Application.CutCopyMode = False
Range("L10").Copy
End With
CurrentBook.Activate
Sheets("Calculations").Range("AO29").PasteSpecial Paste:=xlPasteValues

Workbooks.Open uploadfile
Set uploader = ActiveWorkbook
With uploader
Application.CutCopyMode = False
Range("L11").Copy
End With
CurrentBook.Activate
Sheets("Calculations").Range("AO26").PasteSpecial Paste:=xlPasteValues

Workbooks.Open uploadfile
Set uploader = ActiveWorkbook
With uploader
Application.CutCopyMode = False
Range("H24").Copy
End With
CurrentBook.Activate
Sheets("Calculations").Range("AO13").PasteSpecial Paste:=xlPasteValues

Workbooks.Open uploadfile
Set uploader = ActiveWorkbook
With uploader
Application.CutCopyMode = False
Range("H27").Copy
End With
CurrentBook.Activate
Sheets("Calculations").Range("AO18").PasteSpecial Paste:=xlPasteValues


Workbooks.Open uploadfile
Set uploader = ActiveWorkbook
With uploader
Application.CutCopyMode = False
Range("H26").Copy
End With
CurrentBook.Activate
Sheets("Calculations").Range("AO17").PasteSpecial Paste:=xlPasteValues

Workbooks.Open uploadfile
Set uploader = ActiveWorkbook
With uploader
Application.CutCopyMode = False
Range("L9").Copy
End With
CurrentBook.Activate
Sheets("Calculations").Range("AO25").PasteSpecial Paste:=xlPasteValues

Workbooks.Open uploadfile
Set uploader = ActiveWorkbook
With uploader
Application.CutCopyMode = False
Range("E42").Copy
End With
CurrentBook.Activate
Sheets("Calculations").Range("AO34").PasteSpecial Paste:=xlPasteValues

Workbooks.Open uploadfile
Set uploader = ActiveWorkbook
With uploader
Application.CutCopyMode = False
Range("E43").Copy
End With
CurrentBook.Activate
Sheets("Calculations").Range("AO33").PasteSpecial Paste:=xlPasteValues

Workbooks.Open uploadfile
Set uploader = ActiveWorkbook
With uploader
Application.CutCopyMode = False
Range("E48").Copy
End With
CurrentBook.Activate
Sheets("Calculations").Range("AO45").PasteSpecial Paste:=xlPasteValues

Workbooks.Open uploadfile
Set uploader = ActiveWorkbook
With uploader
Application.CutCopyMode = False
Range("E50").Copy
End With
CurrentBook.Activate
Sheets("Calculations").Range("AO44").PasteSpecial Paste:=xlPasteValues

End Sub

最佳答案

这会对你有很大帮助:

Sub PullData()

Dim uploadfile As Variant
Dim uploader As Workbook
Dim CurrentBook As Workbook

Application.ScreenUpdating = False

Set CurrentBook = ThisWorkbook 'refers to workbook with code

MsgBox ("Please select uploader file to be reviewed")

uploadfile = Application.GetOpenFilename()

If uploadfile = "False" Then Exit Sub

Set uploader = Workbooks.Open(uploadfile) 'stay away from ActiveWorkbook AMAP

With CurrentBook.Sheets("Calculations")
.Range("AO29").Value = uploader.Sheets(1).Range("L10").Value
.Range("AO26").Value = uploader.Sheets(1).Range("L11").Value
.Range("AO13").Value = uploader.Sheets(1).Range("H24").Value
'add the rest of your references here
End With

uploader.close savechanges:=false

End Sub

关于excel - 从一个文件中随机复制数据,然后使用宏将其随机粘贴到其他 Excel 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37600494/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com