發現的解決方案:檢查崗複製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