[英]Working with Arrays VBA Excel
我正在開發一個宏,以消除工作表中用於輸入自定義訂單的空白行。 假設第7、8、9和12行有內容。 我想將第12行的內容移至第10行。
到目前為止,我已經在c列中找到了最后一個占用的行,然后確定e列中的單元格是否為空。
現在,我想將一個值放入一個數組(0(空白)或1(已占用))。 我在將石頭(1)的值設置為1或0的代碼行上遇到錯誤(需要對象)。
怎么了?
Dim ws As Worksheet
Dim rng1 As Range
Set ws = Sheets("Belmont")
Set rng1 = ws.Columns("c").Find("*", ws.[c1], xlValues, , xlByRows, xlPrevious)
Dim zen As String
zen = rng1.Address(0, 0)
Range(zen).Select
Set ruby = Window.ActiveCell.Row - 11
Dim stones() As Boolean
ReDim stones(1 To ruby)
If IsEmpty(ActiveCell.Offset(2, 0)) Then
Set stones(1) = 0
Else
Set stones(1) = 1
End If
msg55 = MsgBox(stones(1), vbDefaultButton1, "Gekko")
我的假設是,您這樣做是出於學習而非實用目的:
您可以搜索VBA數組,並獲得有關該主題的大量資料。 我將從這里開始: http : //www.cpearson.com/excel/vbaarrays.htm
您可以這樣聲明數組:
Dim stones(1 To 10) As Double
您將不得不遍歷范圍內的每個單元。 您也可以Google如何做到這一點:
您可以將數組中第5個元素的值設置為10,如下所示:
stones(5) = 10
看來您確實需要做一些基本的VBA編程教程。 您可以從這里開始:
如果您想擺脫工作表“ Belmont”列C中的空白單元格,那么這應該對您有用:
Sub tgr()
Dim rngBlanks As Range
With Sheets("Belmont").Range("C1", Sheets("Belmont").Cells(Rows.Count, "C").End(xlUp))
On Error Resume Next
Set rngBlanks = .SpecialCells(xlCellTypeBlanks)
On Error GoTo 0
If Not rngBlanks Is Nothing Then rngBlanks.EntireRow.Delete
End With
Set rngBlanks = Nothing
End Sub
如果要刪除C列為空白的所有行,則:
Sub dural()
Dim r As Range
Set r = Range("C:C").Cells.SpecialCells(xlCellTypeBlanks).EntireRow
r.Delete
End Sub
將完成此操作而不會循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.