发现的解决方案:检查岗复制Excel中排在Visual Basic .NET(VS 2008,.NET Framework 3.5中)
你好底部,
我使用Excel对象模型(导入命名空间微软。 Office.Interop.Excel)在我的代码中打开一个Excel.Application对象,然后打开一个工作簿,工作表等。我在做的事很简单:我打开两个工作表对象;一个已经填充了数据,另一个是空的,应该填充第一个工作表中的一些行。如果关于第一个工作表中的单元格的某些条件未得到满足,则我想要复制第二个工作表中第一个可用行的整个行。我有一个整数计数器,初始化为1,这将索引输出工作表中的第一个空行,每当我在outputSheet.Rows(counter)处插入一行时,该计数器显然会递增。
我谷歌每一个解决方案要么使用VBA(我正在寻找一个基于VB.NET的解决方案)或与.NET框架3.5(我在运行时收到异常)不兼容。我猜测我没有正确使用Range对象或某些东西;无论如何,做这件事最简单的方法是什么?我真的不想打开一个到我的Excel文件的OLEDB连接:这对于我试图实现的简单行复制机制来说太复杂了。
感谢,
杰森
编辑#1:典型的那种Excel中记录我不得不面对:
1 | V | 1 | 01078215 | 02 |全名
2 | V | 1 | 8048321 | 01 |全名
例如,如果行的第四个单元格不是8位数字,我想将行按原样复制到第二个excel文件中。
编辑#2:代码:
'copy a row from an excel spreadsheet to another
Sub CopyRowTo(ByVal input As Excel.Worksheet,
ByVal output As Excel.Worksheet,
ByVal row_in As Integer,
ByVal row_out As Integer)
input.Activate()
input.Rows(row_in).Select()
input.Rows(row_in).Copy()
output.Activate()
output.Rows(row_out).Select()
output.Rows(row_out).Paste()
End Sub
称为:CopyRowTo(inputSheet,outputSheet,1,1)
#溶液中发现:
我已经找到了解决我的问题。下面的代码的伎俩:
input.Activate()
input.Rows(row_in).Copy()
output.Activate()
output.Rows(row_out).Select()
output.Paste()
看来,出于某种原因,我需要粘贴方法适用于Excel.Worksheet对象,具有后选择() - 编包含在该对象内的范围(诚实地说,我根本没有得到VB.NET)。
谢谢
Ĵ
#
请提供sheet1数据示例及其在sheet2中的显示方式。显示你迄今为止编写的代码。使用VBA代码时看到什么错误? – shahkalpesh 2011-04-28 08:13:53
表1数据示例,其中不同的字段用“|”分隔: 1 | V | 1 | 01078215 |地址|邮编|城市1 2 | V | 3 | 0567892 |地址2 |邮政编码2 |城市2 例如,如果4th字段没有8位数字(第二行就是这种情况),我需要将整个Excel行复制到新的电子表格中。就是这样,没有额外的格式。 – Jason 2011-04-28 09:51:44
我一直在使用在起始帖子的“编辑:代码”部分提供的代码。 但是,我收到一个异常,指出“Paste()”不是Range类的有效公共成员。这与以下Microsoft文档相矛盾:http://msdn.microsoft.com/zh-cn/library/ aa220332%28v = office.11%29.aspx – Jason 2011-04-28 09:54:13