Excel 获取VBA的值

Excel 获取VBA的值,excel,vba,excel-2007,Excel,Vba,Excel 2007,显然,我试图从excel的b列中获取值,并在单独的表格中显示每个值。从表格5开始。然而,下面的代码似乎是从索引13开始的,而不是指定的索引10。在我的表5上显示值113,表6显示值114…我如何解决这个问题 Sub InvoiceForm() Dim wks As Worksheet Dim i As Long Dim ws As Worksheet Set ws = ActiveSheet Dim buffer As Long buffer =

显然,我试图从excel的b列中获取值,并在单独的表格中显示每个值。从表格5开始。然而,下面的代码似乎是从索引13开始的,而不是指定的索引10。在我的表5上显示值113,表6显示值114…我如何解决这个问题

Sub InvoiceForm()
    Dim wks As Worksheet
    Dim i As Long
    Dim ws As Worksheet
    Set ws = ActiveSheet
    Dim buffer As Long
    buffer = ws.Range("B29").Value    'Getting the number of rows exist for column b'
    Dim a As Long
    a = 10
    For Each wks In ThisWorkbook.Worksheets
        For i = 5 To (i + buffer - 1)
            If (a <= buffer + a - 1 And wks.CodeName = "Sheet" & i) Then
                With wks
                  .Range("J2") = ws.Range("B" & a).Value
                End With
             a = a + 1
             End If
        Next i
   Next wks
End Sub
子发票表单()
将工作作为工作表
我想我会坚持多久
将ws设置为工作表
设置ws=ActiveSheet
将缓冲区设置为长缓冲区
buffer=ws.Range(“B29”)。值“获取b列存在的行数”
暗淡如长
a=10
用于此工作簿中的每个工作。工作表
对于i=5到(i+缓冲区-1)

如果i=5到(i+buffer-1)的(a
计算结果为5到4,并且根本不执行。要进行调试,您必须了解值的值;添加此值,它将输出到即时窗口:
debug.Print“i=”&i
调试您的条件:
Debug.Print buffer+a-1
还请注意,您的
a
正在递增
a=a+1
,因此每个工作表将获得一个不同的单元格
ws.Range(“C”和a).Value
您说“从b列获取值”,但您的代码(
.Range(“J2”)=ws.Range”(/a).Value
)从C列获取它们