簡體   English   中英

VBA 和 Excel 列

[英]VBA and Excel columns

在A列寫程序的Excel表格中,它用MsgBox函數從空抽屜的第一個地址返回列,A1抽屜?

這不是一個答案。 我想幫你問你的問題。 如果您的英語很差,請不要擔心。 如果你說得夠多,我們就能猜到你的意思。 一句話是不夠的。

下面我嘗試使用簡短的簡單句子。 我希望你能理解我。 我的猜測正確嗎? 如果沒有,我希望這可以幫助您寫出更清晰的問題。

這是家庭作業嗎? 使用 Excel 的第一個練習? 你用字典翻譯過嗎? “抽屜”是一個英文單詞,但 Excel 中沒有抽屜。 您指的是 “cell” 嗎? A1是一個單元格。 B5是一個單元格。 你把東西放在抽屜里。 你把東西放在一個單元格里。 這就是英語 - Xxxxxx 詞典所犯的錯誤。

創建並打開一個新的 Excel 工作簿。 單擊Alt + F11 在頂部的右側,您將看到一個灰色區域。 在底部右側,您將看到一個標記為“立即”的白色區域。 在左邊你會看到類似的東西:

VBAProject (Your excel file)
  Microsoft Excel Objects
    Sheet1 (Sheet1)
    Sheet2 (Sheet2)
    Sheet3 (Sheet3)
    ThisWorkbook

如果左鍵單擊 Sheet1,然后單擊鼠標右鍵,您將看到如下所示的菜單:

View Code
View Object
--------------------
VBProject Properties
 :     :
 :     :

單擊View Code 灰色區域將變為白色。 您可以在此處輸入工作表 1 的代碼。這就是您所說的“在 Excel 工作表中”的意思嗎?

我不會將代碼放在 Sheet1 上。 我將使用一個模塊。

轉到工具欄並單擊插入。 在菜單中,單擊模塊。

左邊的窗口現在看起來像:

VBAProject (Your excel file)
  Microsoft Excel Objects
    Sheet1 (Sheet1)
    Sheet2 (Sheet2)
    Sheet3 (Sheet3)
    ThisWorkbook
  Modules
    Module1

“Module1”將是灰色的,因為它被選中。

我想你已經被要求:“找到第 1 行的第一個空單元格並用 MsgBox 顯示它的列號。” 有很多方法可以做到這一點。 哪個最簡單? 我不知道。 這里有兩種方法:

Option Explicit

' Both these routines work on the ActiveSheet.  That is, the worksheet
' you can see when you switch to Excel.  If this code had been against
' Sheet1, it would have worked on Sheet 1 even if another sheet had been
' active.

Sub FindFirstEmpty1()

  ' This routine uses Offset. Range("A1").Offset(RowOffset, ColOffset) says
  ' I want to look at the cell which is RowOffset rows down from A1 and
  ' ColOffset columns right from A1. 

  Dim ColOffset As Long

  ColOffset = 0
  Do While True
    If Range("A1").Offset(0, ColOffset).Value = "" Then
      Call MsgBox("The first empty column is " & ColOffset + 1, vbOKOnly)
      Exit Sub
    End If
    ColOffset = ColOffset + 1
  Loop

End Sub

Sub FindFirstEmpty2()

  ' This routine uses Cells(Row, Column).  The columns are numbered: A=1, B=2,
  ' C=3 and so on.  Cells(Row, Column) lets me look at any cell in the
  ' worksheet.

  Dim ColCrnt As Long

  ColCrnt = 1
  Do While True
    If Cells(1, ColCrnt).Value = "" Then
      Call MsgBox("The first empty column is " & ColCrnt, vbOKOnly)
      Exit Sub
    End If
    ColCrnt = ColCrnt + 1
  Loop

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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