如何在Excel VBA中復(fù)制一行
使用VBA編程Excel不像以前那樣受歡迎。但是,在使用Excel時,仍有很多程序員更喜歡它。如果你是這些人之一科普活動總結(jié),這篇文章是為你
在Excel VBA中復(fù)制一行是Excel VBA非常有用的。例如,您可能希望將所有收據(jù)的一個文件與日期,帳戶,類別,提供商,產(chǎn)品/服務(wù)和成本一次輸入一行,因為它們發(fā)生在不斷演變的會計而不是靜態(tài)會計的實例中。要做到這一點,您需要能夠從一個工作表復(fù)制到另一個工作表。
為了簡單起見,僅使用三列將一行從一個工作表復(fù)制到另一個工作表的Excel VBA示例程序包含:
- 文本
- 數(shù)字列的alpha列-在目標(biāo)工作表上創(chuàng)建自動總和
- 日期列-當(dāng)前日期和時間自動填寫
編寫Excel VBA代碼的注意事項
要觸發(fā)復(fù)制該行的事件,請使用標(biāo)準(zhǔn)按鈕表單控件。在Excel中,單擊“插入開發(fā)人員”選項卡。然后,選擇按鈕表單控件并在需要的地方繪制按鈕。Excel會自動顯示一個對話框,讓您有機(jī)會選擇由按鈕的單擊事件觸發(fā)的宏或創(chuàng)建一個新的宏。
有幾種方法可以找到目標(biāo)工作表中的最后一行,因此程序可以在底部復(fù)制一行。此示例選擇維護(hù)工作表中最后一行的數(shù)量。要保持最后一行的數(shù)量,您必須將該數(shù)字存儲在某個地方。這可能是一個問題,因為用戶可能會更改或刪除號碼。為了解決這個問題,將它直接放在表單按鈕下方的單元格中。這樣,用戶就無法訪問它'。(最容易做的是在單元格中輸入一個值,然后將按鈕移到上面。)
使用Excel VBA
復(fù)制行的代碼Sub Add UtheLine()Dim currentRow作為整數(shù)表("Sheet1")。選擇currentRow=Range("C2")。值行(7)選擇。復(fù)制Sheets("Sheet2")。選擇行(currentRow)Active Sheet.PasteDim theDate As Date theDate=Now()Cells(currentRow,4).Value=CStr(theDate)Cells(currentRow+1,3) 。根據(jù)范圍設(shè)置激活Dim-rTotalCell rTotalCell=Sheets("Sheet2")。單元格(行。計數(shù),#34;C")。結(jié)束(xlUp)。偏移量(1,0)rTotalCell=WorksheetFunction.Sum_(范圍("C7",rTotalCell.offact(-1,0)))表格("表格1")。范圍("C2")。值=當(dāng)前行+1結(jié)束子
該代碼使用xlUp,a"魔數(shù),"或更技術(shù)上使用枚舉常數(shù),End方法可以識別該常數(shù)。偏移量(1,0)只需在同一列中向上移動一行,因此最終效果是選擇C列中的最后一個單元格。
換句話說,該聲明說:
- 轉(zhuǎn)到C欄中的最后一個單元格(相當(dāng)于End+Down箭頭)。
- 然后,返回到最后一個未使用的單元格(相當(dāng)于End+up箭頭)。
- 然后,再向上一個單元格。
最后一個語句更新最后一行的位置。
VBA可能比VB.NET因為您必須同時了解VB和Excel VBA對象。使用xlUP是一種專業(yè)知識的很好的例子,對于能夠編寫VBA宏而無需為您編碼的每個語句查找三種不同的事物至關(guān)重要。微軟在升級Visual Studio編輯器方面取得了很大進(jìn)展,以幫助您找出正確的語法,但VBA編輯器沒有太大變化。