我試圖創建一個簡單的宏,它複製列中每個單元格中的兩個第一個數字,並將它們打印在不同的列中。這是一個超過1個工作表的Excel文檔。我已經嘗試了一段時間來編寫代碼,但沒有以前的經驗,我很難搞清楚該怎麼做。我知道「left()」函數能夠做到這一點,但我不知道如何定義從哪個列中繪製數據以及將要打印哪一列。任何幫助將不勝感激。使用左函數[VBA]
1
A
回答
9
由於沒有以前的經驗寫VBA代碼,我會建議你堅持公式的做法。老實說,即使你熟悉VBA,你仍然可以選擇使用公式。
將一個公式放入您想要複製的值的實際單元格中。
=LEFT(sourceCell, #of characters you want)
這是它會怎樣看:
=LEFT(Sheet1!A1, 2)
認爲它是說:「該小區將在小區OO等於前n個字符,從左側開始」。一旦你完成了你的公式,如果你不需要將它綁定到源代碼(如果sourceCell改變了,那麼帶有LEFT公式的單元格也會改變),你可以突出顯示單元格,Ctrl + Alt + C複製,然後右鍵單擊並選擇粘貼特殊。然後選擇VALUE,然後點擊確定,現在這些單元格將被硬編碼爲顯示的值,就好像您自己輸入了一樣。
一旦你掌握了使用公式,下一步就是VBA。如果你不習慣使用= LEFT,那麼跳入VBA並編寫範圍代碼等不要混淆你自己。一步一個腳印,在你知道它之前你會成爲一名職業球員。 :)
2
這裏是一個快速樣本子,讓你開始:
Public Sub LeftSub()
Dim SourceRange As Range, DestinationRange As Range, i As Integer
'Define our source range as A1:A10 of Sheet1
Set SourceRange = Sheet1.Range("A1:A10")
'Define our target range where we will print.
'Note that this is expected to be of same shape as source
Set DestinationRange = Sheet1.Range("B1:B10")
'Iterate through each source cell and print left 2 bits in target cell
For i = 1 To SourceRange.Count
DestinationRange(i, 1).Value = Left(SourceRange(i, 1).Value, 2)
Next i
End Sub
2
如何
Sub foo()
Dim cell As Range
Dim sourceRange As Range
'//define the source column - looks for contiguous downward data from A1;
Set sourceRange = Range(Sheets("Sheet1").Range("A1"), Selection.End(xlDown))
'//iterate each cell
For Each cell In sourceRange
If IsEmpty(cell.Value) Then Exit For
'//example to place the value in corresponding row of column B in sheet 2
Sheets("Sheet2").Range("B" & cell.Row).Value = Left$(cell.Value,2)
Next
End Sub
或等價公式(在目標單元格)
=LEFT(Sheet1!A1,2)
相關問題
- 1. 使用列函數 - Excel VBA
- 2. VBA - 使用子或函數
- 3. VBA函數調用
- 4. VBA:調用函數
- 5. 使用左函數爲靜態字符
- 6. 在vba函數調用中使用= =
- 7. VBA函數=函數參數?
- 8. 使用Excel VBA Application.ontime函數和遞歸函數調用
- 9. 使用RIGHT函數嵌套IF VBA
- 10. VBA UBound函數
- 11. VBA「getvalue」函數
- 12. 在VBA函數
- 13. VBA Round函數
- 14. VBA Len函數
- 15. VBA月()函數
- 16. 從C#調用VBA函數
- 17. VBA IE Onclick函數調用
- 18. 函數調用代碼VBA
- 19. 在VBA中調用函數
- 20. Excel VBA - 在範圍函數中使用範圍函數
- 21. 左側功能VBA
- 22. 將一段代碼轉換爲函數,以及如何使用該函數。 VBA VBA VBA
- 23. 如何使用Word VBA中使用Access-VBA定義的函數的Access查詢?
- 24. 平均VBA函數
- 25. VBA Inet1 GetChunk函數
- 26. Excel VBA和函數
- 27. 日期函數VBA
- 28. 在VB6中使用MS Access VBA函數使用查詢
- 29. 計數使用VBA
- 30. 什麼是函數的左值引用?
+1表示VBA可能並不總是最好的解決方案。 – JimmyPena
+1與JP評論相同。儘管如此,對於所有Excel強大的用戶來說,其同樣的生命週期轉向了VBA程序員。發現Excel的強大功能>使用Excel公式>發現VBA>隨處使用VBA並省略公式>實現美麗將公式和VBA結合在一起。 –
好吧,justnS。我們都確實經歷了同樣的啓示:) – aevanko