我没有按照简单的任务将行复制到具有一列偏移量的不同工作表。
一个简单的
With ThisWorkbook.Sheets("CSVImport")
.Range(.Cells(1, 1), .Cells(1, maxColumn)).Select
失败,因为大小不匹配。我假设选择了整行
如果我选择仅测试所需的部分
void on_pad_added(GstElement *element, GstPad *pad, gpointer data) {
GstElement videoelem = ((GstElement *)data)[0];
GstElement audioelem = ((GstElement *)data)[1];
...
}
我收到错误选择无法完成,错误1004。
我只想让A1:C1复制到B1:D1。
答案 0 :(得分:0)
With ThisWorkbook.Sheets("CSVImport")
maxColumn = .Columns.Count
.Range(.Cells(1, 1), .Cells(1, maxColumn)).Select
End With
HOWEVER ,它不处理您无法复制整行并将其粘贴到第2列的基本问题(正如您所说,“带有偏移量)一栏“)。它根本不适合。但是已经说过了......那不是你的代码试图做的事情。单元格(2,1)指的是 行 2, 列 1;偏移量为1行,而不是1列。您发布的代码:
With ThisWorkbook.Sheets("CSVImport")
.Rows(1).Copy Destination:=ThisWorkbook.Sheets(strAccount).Cells(2, 1)
实际上对我有用... 提供 ,变量strAccount填充了有效的工作表名称。
我认为退一步看看你真正想做什么可能是一个想法;目标是偏移1列还是1行。如果它偏移了1列,那么你只需要复制带有数据的列,而不是整行。
答案 1 :(得分:0)
我现在使用此代码
解决了这个问题Dim target As Worksheet
Set target = ThisWorkbook.Sheets("1904097928")
Dim from As Worksheet
Set from = ThisWorkbook.Sheets("CSVImport")
With ThisWorkbook.Sheets("CSVImport")
Dim maxColumn As Integer
maxColumn = Helper.lastColumn(from)
.Range(.Cells(1, 1), .Cells(1, maxColumn)).Copy Destination:=target.Cells(1, 2)
End With
其中lastColumn计算为
Function lastColumn(sheet As Worksheet) As Integer
lastColumn = sheet.Cells(1, Cells.Columns.Count).End(xlToLeft).Column
End Function