如何在Excel VBA中復(fù)制一行

使用VBA編程Excel不像以前那樣受歡迎。但是,在使用Excel時(shí),仍有很多程序員更喜歡它。如果你是這些人之一科普活動(dòng)總結(jié),這篇文章是為你

在Excel VBA中復(fù)制一行是Excel VBA非常有用的。例如,您可能希望將所有收據(jù)的一個(gè)文件與日期,帳戶,類別,提供商,產(chǎn)品/服務(wù)和成本一次輸入一行,因?yàn)樗鼈儼l(fā)生在不斷演變的會(huì)計(jì)而不是靜態(tài)會(huì)計(jì)的實(shí)例中。要做到這一點(diǎn),您需要能夠從一個(gè)工作表復(fù)制到另一個(gè)工作表。

為了簡(jiǎn)單起見,僅使用三列將一行從一個(gè)工作表復(fù)制到另一個(gè)工作表的Excel VBA示例程序包含:

  • 文本
  • 數(shù)字列的alpha列-在目標(biāo)工作表上創(chuàng)建自動(dòng)總和
  • 日期列-當(dāng)前日期和時(shí)間自動(dòng)填寫

編寫Excel VBA代碼的注意事項(xiàng)

要觸發(fā)復(fù)制該行的事件,請(qǐng)使用標(biāo)準(zhǔn)按鈕表單控件。在Excel中,單擊“插入開發(fā)人員”選項(xiàng)卡。然后,選擇按鈕表單控件并在需要的地方繪制按鈕。Excel會(huì)自動(dòng)顯示一個(gè)對(duì)話框,讓您有機(jī)會(huì)選擇由按鈕的單擊事件觸發(fā)的宏或創(chuàng)建一個(gè)新的宏。

有幾種方法可以找到目標(biāo)工作表中的最后一行,因此程序可以在底部復(fù)制一行。此示例選擇維護(hù)工作表中最后一行的數(shù)量。要保持最后一行的數(shù)量,您必須將該數(shù)字存儲(chǔ)在某個(gè)地方。這可能是一個(gè)問(wèn)題,因?yàn)橛脩艨赡軙?huì)更改或刪除號(hào)碼。為了解決這個(gè)問(wèn)題,將它直接放在表單按鈕下方的單元格中。這樣,用戶就無(wú)法訪問(wèn)它'。(最容易做的是在單元格中輸入一個(gè)值,然后將按鈕移到上面。)

使用Excel VBA

復(fù)制行的代碼
Sub Add UtheLine()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")。單元格(行。計(jì)數(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í)別該常數(shù)。偏移量(1,0)只需在同一列中向上移動(dòng)一行,因此最終效果是選擇C列中的最后一個(gè)單元格。

換句話說(shuō),該聲明說(shuō):

  • 轉(zhuǎn)到C欄中的最后一個(gè)單元格(相當(dāng)于End+Down箭頭)。
  • 然后,返回到最后一個(gè)未使用的單元格(相當(dāng)于End+up箭頭)。
  • 然后,再向上一個(gè)單元格。

最后一個(gè)語(yǔ)句更新最后一行的位置。

VBA可能比VB.NET因?yàn)槟仨毻瑫r(shí)了解VB和Excel VBA對(duì)象。使用xlUP是一種專業(yè)知識(shí)的很好的例子,對(duì)于能夠編寫VBA宏而無(wú)需為您編碼的每個(gè)語(yǔ)句查找三種不同的事物至關(guān)重要。微軟在升級(jí)Visual Studio編輯器方面取得了很大進(jìn)展,以幫助您找出正確的語(yǔ)法,但VBA編輯器沒(méi)有太大變化。