Excel 将数据从一个工作簿复制并粘贴到另一个工作簿中
我正在尝试将选定范围的单元格从一个工作簿复制到另一个工作簿。这是我在第一个工作簿中使用的选择范围和复制代码:Excel 将数据从一个工作簿复制并粘贴到另一个工作簿中,excel,vba,Excel,Vba,我正在尝试将选定范围的单元格从一个工作簿复制到另一个工作簿。这是我在第一个工作簿中使用的选择范围和复制代码: Sub Copy() 'This selects the range of active cells, adds a border and copies all data. Range("A1").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection
Sub Copy()
'This selects the range of active cells, adds a border and copies all data.
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
End Sub
虽然这会选择并复制第一个工作簿中的单元格,但我很难将其与粘贴到另一个工作簿中的宏合并。以下是将数据从一个工作簿粘贴到另一个工作簿的宏示例:
Sub Paste()
Dim x As Workbook
Dim y As Workbook
'## Open both workbooks first:
Set x = Workbooks.Open(" path to copying book ")
Set y = Workbooks.Open(" path to destination book ")
'Now, transfer values from x to y:
y.Sheets("sheetname").Range("A1").Value = x.Sheets("name of copying sheet").Range("A1")
'Close x:
x.Close
End Sub
两件事:
CurrentRow=Range(“A1”).End(xlDown).Offset(1,0).Row
,然后从A列开始粘贴到该行中多谢各位 以下是我最近使用的两段代码片段,它们应该可以帮助您摆脱困境 第一个代码允许您按名称(或所述的索引)查找特定的工作表。这不需要您指定工作簿,因为它在所有当前打开的工作表中循环
Dim Sheet As Worksheet
Dim sheetName As String
sheetName = "Sheet1"
For Each Sheet In Worksheets
If Sheet.Name = sheetName Then
Set GetSheet = Worksheets(sheetName)
Exit For
End If
Next Sheet
下一个代码段(我不能相信,但已经丢失了源信息)将在指定的工作表中搜索包含在中的任何和所有数据,并创建一个包含找到的单元格范围的范围对象
(这可能不是您想要的,因为我不确定您的问题是想要所有数据还是只是一个选择)
一旦有了范围对象,您可以使用它做很多事情,但只需将值插入另一个工作表即可:
Dim newSheet as WorkSheet
set newSheet = ThisWorkbook.Worksheets("New Sheet") ' Just an example
'Using fields from last code snippet
newSheet.Range(newSheet.Cells(1,1), newSheet.Cells(lastRow,lastCol)).value = dataRange.Value
为了回答上面的问题,我希望选择并复制初始工作表中的所有活动单元格。此外,我将三组代码组合成一组,但在第行中不断收到错误消息:Set sheetCells=Sheet.Cells。不明白为什么:谢谢@Sfadal@罗宾,对不起,我花了一段时间才回复。错误描述是什么?循环可能未按提供的名称找到工作表,因此对象不存在。检查工作表的名称,并在循环后使用断点运行调试,以检查“监视”选项卡中的“工作表”对象。谢谢@Sfadal,我收到以下错误:运行时错误“91”:未设置对象变量或带块变量。我希望将数据粘贴到的工作表的名称称为“Sheet1”,因此我不必更改代码中的任何内容。谢谢你的帮助!
Dim newSheet as WorkSheet
set newSheet = ThisWorkbook.Worksheets("New Sheet") ' Just an example
'Using fields from last code snippet
newSheet.Range(newSheet.Cells(1,1), newSheet.Cells(lastRow,lastCol)).value = dataRange.Value