簡體   English   中英

使用數組VBA Excel

[英]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如何做到這一點:

給定Range對象時,循環遍歷某個單元格區域中的每個單元格

您可以將數組中第5個元素的值設置為10,如下所示:

stones(5) = 10

看來您確實需要做一些基本的VBA編程教程。 您可以從這里開始:

http://www.mrexcel.com/forum/excel-questions/667818-tutorials-excel-macros-visual-basic-applications.html

如果您想擺脫工作表“ 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM