gpt4 book ai didi

excel - VBA将Excel范围复制到不同的工作簿

转载 作者:行者123 更新时间:2023-12-04 20:35:34 25 4
gpt4 key购买 nike

我试图找到一种将一个工作簿中的范围复制到另一个工作簿的方法,在本例中为 A6:J21。我以为它会像下面这样......

currentWorksheet = xlWorkBook.Sheets.Item("Command Group")
excelRange = currentWorksheet.Range("A6:J21")
excelDestination = newXlSheet.Range("A6:J21")
excelRange.Copy(excelDestination)

但它给了我一个错误 excelRange.Copy(excelDestination) .

下面的代码按预期运行,所以我不确定我在哪里出错了..
Dim xRng As Excel.Range = CType(currentWorksheet.Cells(7, 7), Excel.Range)
Console.WriteLine(xRng.ToString)
Dim val As Object = xRng.Value()
testString = val.ToString
Console.WriteLine(testString)
newXlSheet.Cells(1, 1) = testString

最佳答案

要回答您的问题“为什么 B 正在运行,而不是 A”..

在一个:currentWorksheet = xlWorkBook.Sheets.Item("Command Group")
首先,您缺少 SET为您的对象分配。其次,您使用的是 Workbook.Sheets.Item()返回 Sheets object .一个 Sheets object可以表示图表或工作表,因此没有 .Range()方法。

您可以通过单步执行此代码来验证这一点:

Dim currentWorksheet As Sheets
Set currentWorksheet = ThisWorkbook.Sheets.Item("Command Group")
excelRange = currentWorksheet.Range("A1:A21")

它会出错,并告诉您找不到该方法。

修复 A:确保您通过使用强类型来取回 Worksheet 对象。
Dim currentWorksheet as Worksheet
Set currentWorksheet = ThisWorkbook.Sheets.Item("Command Group")

为了修复 future 的代码并简化调试过程,我强烈建议始终声明 Option Explicit在所有模块的顶部。

为简洁起见,您可以将代码缩短为:
Dim currentWorksheet as Worksheet
Set currentWorksheet = ThisWorkbook.Sheets("Command Group")

关于excel - VBA将Excel范围复制到不同的工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43123543/

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