2016-03-09 94 views
0

完整的初學者到VBA並且在工作簿之間複製值時出現問題。將動態範圍複製到現有工作簿中

我的目標是某些列從命名SupExp工作表複製並粘貼在不同的工作簿中的工作表名爲費用。 SupExp需要的列是A:C,H:M和O.我需要從第9行開始爲每一列開始以及上述任何信息。每次報告進入時行數都會變化,並且每次工作表SupExp進來時都需要執行此過程。

當粘貼到費用中時,信息需要從下一個空行開始粘貼。例如,如果在費用A100中有信息,則從SupExp的A9複製的值需要在費用A101上開始。

列甲:SupExp匹配列A的C:開支℃。 SupExp的O欄需要放在費用欄D中。 SupExp的列H:M與列E:J重合。

感謝您在哪裏學習如何做到這一點任何幫助或建議。

回答

0

它看起來像你真的VBA開始的話,我將提供一些相關資料信息。

做你想做什麼,你應該VBA子程序可以被稱爲宏(從按鈕,鍵盤快捷鍵等)。網上有大量的教程可以指導你完成VBA編程的基礎知識,所以我只是跳到你的具體問題。

要將單元格或範圍的內容複製到其他位置,只需要一個屬性(=),該屬性涉及代表範圍和所需屬性的對象(取決於是否要複製值,文本,公式等等。)。在Sheet2上下面的示例將單元格A1-A5工作表Sheet1上的值單元格B1-B5:

Sub CopyData() 
    WorkSheets("Sheet2").Range("B1:B5").Value = WorkSheets("Sheet1").Range("A1:A5").Value 
End Sub 

在你的問題,你還需要找到一列中的第一個空單元格,找出你會寫你的數據。一個簡單的方法是探測列中每個單元格的內容,檢查它是否爲空,直到找到一個單元格爲止。本實施例中就是這樣做的與活性薄片的列A和它的值設置爲一個字符串,查看:

Sub FirstEmpty() 
    Dim aRow As Long 
    aRow = 1 
    While ActiveSheet.Range("A" & aRow).Value <> "" 
     aRow = aRow + 1 
    Wend 
    ActiveSheet.Range("A" & aRow).Value = "FOUND IT!" 
End Sub 

注意,這將計爲空,其具有式,其結果是一個空的細胞串。如果要避免這種情況,請將While語句中的.Value屬性替換爲.Formula屬性。還有其他(可能更好)的方法來達到相同的結果 - 我只是想提出一個選擇。

嘗試將這些片段組合,適應你的問題。實驗,谷歌周圍...如果您仍然無法解決您的問題,請發佈您的代碼並再次尋求幫助。如果你已經有了一些代碼並且需要幫助才能按預期工作,那麼它更容易從社區獲得幫助。祝你好運。

相關問題