VBA基本命令/语法

时间:2016-01-06 05:34:05

标签: excel vba excel-vba module

我目前正在尝试编写一个程序,以便于将特定信息从一个Excel工作簿传输到另一个工作簿。

目前,我只能将信息从单个预选(硬编码到模块)单元转移到另一个工作簿。

我对VBA命令有几个问题,这些命令可以帮助我更有效地编码。

首先,VBA中的循环类型是什么,有人可以快速了解它们的使用方式吗?

其次,有一种方法可以让用户通过鼠标手动选择模块来处理单元格吗?如同用户手动点击屏幕上的单元格并且程序根据该单元格的位置运行?

最后,让我从当前所选位置选择相邻单元格的功能是什么?

提前致谢!

1 个答案:

答案 0 :(得分:-1)

有一些Loop陈述:

a = 10
c = 1
Do While c < a
  'somescript
  c = c + 1
Loop
a = 10
c = 1
While c < a
  'some script
  c = c + 1
Wend
c = 1     
Do Until c = 10
  'some script
  c = c + 1
Loop
For Each Paragraph In ThisDocument.Paragraphs
        'some script
Next Paragraph
For i = 0 To 100
    'some script
Next i

可以找到here的说明。它取决于你的应用程序,你想要使用什么循环。

要从单元格执行Marco,您可以在项目中使用Microsoft Excel对象 - 工作表中的Sub,然后使用以下某个选项:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

End Sub
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

要使用相邻单元格中的数据,请使用Offset,例如:

Sub SomeSub()

    Dim rng As Range
    Dim rng2 As Range
    'cell B3 is set to the rng
    Set rng = Cells(2, 3)
    'cell B4 is set to the rng2
    Set rng2 = rng.Offset(0, 1)
    'cell B4 will be activated
    rng2.Activate

End Sub