簡體   English   中英

在Excel中為Visual Basic編寫循環

[英]Writing a loop in Excel for Visual Basic

我如何將以下代碼編寫為循環。 我想從范圍(b:17:L17“)中連續刪除工作表4中表格中的值。是否有更有效的方法來處理循環?

ActiveSheet.Range("B17").Value = Sheets(4).Range("G8")

ActiveSheet.Range("C17").Value = Sheets(4).Range("G9")

ActiveSheet.Range("D17").Value = Sheets(4).Range("G10")

ActiveSheet.Range("E17").Value = Sheets(4).Range("G11")
ActiveSheet.Range("F17").Value = Sheets(4).Range("G12")
ActiveSheet.Range("G17").Value = Sheets(4).Range("G13")
ActiveSheet.Range("H17").Value = Sheets(4).Range("G14")

ActiveSheet.Range("I17").Value = Sheets(4).Range("G15")

ActiveSheet.Range("J17").Value = Sheets(4).Range("G16")


ActiveSheet.Range("K17").Value = Sheets(4).Range("G17")

ActiveSheet.Range("L17").Value = Sheets(4).Range("G18")

就在這里:

ActiveSheet.Range("B17:L17").Value = Application.Transpose(Sheets(4).Range("G8:G18").Value)

你可以使用這樣的東西(VB.Net,但可以很容易地復制到VBA):

Dim cell as Integer, c as Integer
cell = 8
For c = 66 To 76
   ActiveSheet.Range(Chr(c) & "17").Value = Sheets(4).Range("G" & cell)
   cell = cell + 1
Next

Chr()函數獲取與字符代碼(66-76)相關聯的字符,然后將該值與字符串“17”連接以形成完整的單元格名稱(“B17”,“C17”,...)

我也在同時遞增G的單元格數。


如果你真的想要使用循環,請使用它 - 但可能有更好的方法,比如@ASH給出的答案

解決方案說明
建立你的規則! 活動紙張的范圍有什么變化? 該列將隨着for / to循環的增長而增長! 所以,我們應該總結一下。 另外一件事會增加什么? '='另一側的范圍因此,通過設置算法,我們可以說在Activesheet范圍內該行是const,而另一側是列的on變量。
解:

Sub Test()
Const TotalInteractions As Long = 11
Dim CounterInteractions As Long
    For CounterInteractions = 1 To TotalInteractions
    'where 1 is column A so when it starts the cycle would be B,C and so on
    'where 7 is the row to start so when it begins it would became 8,9 and so on for column G
    ActiveSheet.Cells(17, 1 + CounterInteractions).Value = Sheets(4).Cells(7 + CounterInteractions, 7)
    Next CounterInteractions
End Sub

這可能是您在with語句中最有效的解決方案:

Sub LoopExample()
  Sheets("Sheet4").Range("G8:G18").Copy
  Sheets("Sheet2").Range("B17").PasteSpecial xlPasteValues, Transpose:=True
End Sub

暫無
暫無

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

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