gpt4 book ai didi

excel - 将选定范围复制到另一个工作表

转载 作者:行者123 更新时间:2023-12-02 23:56:50 24 4
gpt4 key购买 nike

我正在使用下面的代码,我试图对其进行更改,以免使用 .select

Selection.Select ' from active worksheet
Selection.Copy
Sheets("Purch Req").Select
Range("A1").Select
ActiveSheet.Paste

我尝试过使用它,但没有输出到其他工作表。

Dim src2Range As Range, dest2Range As Range

Set src2Range = Selection 'source from selected range

Set dest2Range = Sheets("Purch Req").Range("A1").Resize(src2Range.Rows.Count, src2Range.Columns.Count) ' destination range _
'in Purch req worksheet

最佳答案

这里有 How to avoid using Select in Excel VBA 的很好的例子链接 stackoverflow

这里是简单的

复制/粘贴 - 值 = 值 - PasteSpecial 方法

Option Explicit
'// values between cell's
Sub PasteValues()

Dim Rng1 As Range
Dim Rng2 As Range

Set Rng1 = Range("A1")
Set Rng2 = Range("A2")
Rng2.Value = Rng1.Value

'or
[A2].Value = [A1].Value

'or
Range("A2").Value = Range("A1").Value

'or
Set Rng1 = Range("A1:A3")
Set Rng2 = Range("A1:A3")
Rng2("B1:B3").Value = Rng1("A1:A3").Value

'or
[B1:B3].Value = [A1:A3].Value


'// values between WorkSheets
Dim xlWs1 As Worksheet
Dim xlWs2 As Worksheet

Set xlWs1 = Worksheets("Sheet1")
Set Rng1 = xlWs1.Range("A1")

Set xlWs2 = Worksheets("Sheet2")
Set Rng2 = xlWs2.Range("A1")
Rng2.Value = Rng1.Value

'or
Set Rng1 = [=Sheet1!A1]
Set Rng2 = [=Sheet2!A1]
Rng2.Value = Rng1.Value

'or
[=Sheet2!A1].Value = [=Sheet1!A1].Value

'or
Worksheets("Sheet2").Range("A2").Value = Worksheets("Sheet1").Range("A1").Value

'// values between workbooks
Dim xlBk1 As Workbook
Dim xlBk2 As Workbook

Set xlBk1 = Workbooks("Book1.xlsm")
Set Rng1 = xlBk1.Worksheets("Sheet1").Range("A1")

Set xlBk2 = Workbooks("Book2.xlsm")
Set Rng2 = xlBk2.Worksheets("Sheet1").Range("A1")
Rng2.Value = Rng1.Value

'or
Set Rng1 = Evaluate("[Book1.xlsm]Sheet1!A1")
Set Rng2 = Evaluate("[Book2.xlsm]Sheet2!A1")
Rng2.Value = Rng1.Value

'or
Evaluate("[Book2.xlsm]Sheet2!A1").Value = Evaluate("[Book1.xlsm]Sheet1!A1")

'or
Workbooks("Book2.xlsx").Worksheets("Sheet1").Range("A1").Value = _
Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A1").Value


End Sub

简单复制/粘贴

Sub CopyRange()
Dim Rng1 As Range
Dim Rng2 As Range

Set Rng1 = Range("A1")
Set Rng2 = Range("A2")
Rng1.Copy Rng2

[A1].Copy [A2]

Range("A2").Copy Range("A1")

'// Range.Copy to other worksheets
Dim xlWs1 As Worksheet
Dim xlWs2 As Worksheet

Set xlWs1 = Worksheets("Sheet1")
Set Rng1 = xlWs1.Range("A1")
Set xlWs2 = Worksheets("Sheet2")
Set Rng2 = xlWs2.Range("A1")
Rng1.Copy Rng2

Set Rng1 = [=Sheet1!A1]
Set Rng2 = [=Sheet2!A1]
Rng1.Copy Rng2

[=Sheet1!A1].Copy [=Sheet2!A1]

Worksheets("Sheet1").Range("A1").Copy Worksheets("Sheet2").Range("A1")

''// Range.Copy to other workbooks
Dim xlBk1 As Workbook
Dim xlBk2 As Workbook

Set xlBk1 = Workbooks("Book1.xlsm")
Set Rng1 = xlBk1.Worksheets("Sheet1").Range("A1")
Set xlBk2 = Workbooks("Book2.xlsm")
Set Rng2 = xlBk2.Worksheets("Sheet2").Range("A2")
Rng1.Copy Rng2


Evaluate("[Book1.xlsm]Sheet1!A1").Copy Evaluate("[Book2.xlsm]Sheet2!A2")

Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A1").Copy _
Workbooks("Book2.xlsx").Worksheets("Sheet1").Range("A1")

End Sub

PasteSpecial方法

Sub PasteSpecial()

'Copy and PasteSpecial a Range
Range("A1").Copy
Range("A3").PasteSpecial Paste:=xlPasteFormats

'Copy and PasteSpecial a between worksheets
Worksheets("Sheet1").Range("A2").Copy
Worksheets("Sheet2").Range("A2").PasteSpecial Paste:=xlPasteFormulas

'Copy and PasteSpecial between workbooks
Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A1").Copy
Workbooks("Book2.xlsx").Worksheets("Sheet1").Range("A1").PasteSpecial Paste:=xlPasteFormats

Application.CutCopyMode = False

End Sub

关于excel - 将选定范围复制到另一个工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34885846/

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