Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA是';t正确验证整数值以进行比较_Vba_Excel - Fatal编程技术网

Excel VBA是';t正确验证整数值以进行比较

Excel VBA是';t正确验证整数值以进行比较,vba,excel,Vba,Excel,基本上,我尝试遍历列中值小于50的单元格(R:R) 代码如下: Sub Macro1() ' ' Macro1 Macro ' ' Sheets("Pyxis Inventory 6North1 and 6No").Select Cells(1).EntireRow.Copy (Sheets("Sheet1").Range("A1").EntireRow) Cells(1).EntireRow.Copy (Sheets("Sheet2").Range("A1").Enti

基本上,我尝试遍历列中值小于50的单元格(R:R)

代码如下:

Sub Macro1()
'
' Macro1 Macro
'
'
    Sheets("Pyxis Inventory 6North1 and 6No").Select
    Cells(1).EntireRow.Copy (Sheets("Sheet1").Range("A1").EntireRow)
    Cells(1).EntireRow.Copy (Sheets("Sheet2").Range("A1").EntireRow)

    Dim val1, val2 As String
    Dim i, j, x As Integer
    Dim colCount As Integer
    Dim daysUnused As Boolean
    Dim daysVal As Integer
    colCount = Sheets("Pyxis Inventory 6North1 and 6No").Range("A1").CurrentRegion.Rows.Count

    daysUnused = IsEmpty(Sheets("Settings").Range("B2"))
    If daysUnused = True Then
        'do nothing yet

    ElseIf daysUnused = False Then
        daysVal = Sheets("Settings").Range("B2").Value
        For x = 2 To colCount
            If Cells(x, 18).Value <= daysVal Then
                Cells(x, 18).EntireRow.Copy (Sheets("Sheet4").Range("A1").Offset(x, 0))
                Cells(x, 18).EntireRow.Delete
            End If
         Next x
    End If
End Sub
Sub宏1()
'
'宏1宏
'
'
工作表(“Pyxis库存6North1和6No”)。选择
单元格(1).EntireRow.Copy(图纸(“1”).范围(“A1”).EntireRow)
单元格(1).EntireRow.Copy(图纸(“Sheet2”).范围(“A1”).EntireRow)
Dim val1,val2作为字符串
尺寸i,j,x为整数
Dim colCount为整数
Dim daysun用作布尔值
Dim daysVal作为整数
colCount=板材(“Pyxis库存6North1和6No”).范围(“A1”).当前区域.Rows.Count
daysUnused=IsEmpty(图纸(“设置”).范围(“B2”))
如果daysUnused=True,则
“什么也不做
ElseIf daysUnused=则为False
daysVal=图纸(“设置”).范围(“B2”).值
对于x=2到colCount

如果以单元格(x,18).Value开头,则删除行时最好从底部开始,然后向上移动。e、 g.
对于x=colCount到第2步-1

如果daysUnused=True
ElseIf daysUnused=False,则
对一个简单的布尔值求值过高。后者可以缩短为
Else
。严格地说,如果为True时不打算做任何事情,那么
not
就足够了

daysUnused = IsEmpty(Sheets("Settings").Range("B2"))
If Not daysUnused Then
    daysVal = Sheets("Settings").Range("B2").Value
    For x = colCount to 2 step -1
        If Cells(x, 18).Value <= daysVal Then
            Cells(x, 18).EntireRow.Copy Sheets("Sheet4").Range("A1").Offset(x, 0)
            Cells(x, 18).EntireRow.Delete
        End If
     Next x
End If
daysUnused=IsEmpty(图纸(“设置”).范围(“B2”))
如果不使用Daysun,则
daysVal=图纸(“设置”).范围(“B2”).值
对于x=colCount到2步骤-1

如果单元格(x,18).Value以其开头,则删除行时最好从底部开始向上移动。e、 g.
对于x=colCount到第2步-1
。这可能就是答案。如果删除了第3行,则第4行向上移动,下一次迭代将检查以前是第5行的内容。它本质上是跳过行。在代码的旁注中,不要在VBA中使用整数,而是使用Long,这是:Dim i,j,x作为Integer不会做你认为它做的事情,它应该是:Dim i As Long,j As Long,x只要你必须为每一个变量命名类型,即使是在同一行上。太棒了,第1步是什么意思??我对VBA相当陌生这是我的第一个程序哈哈,我习惯了C和Java,但与后者相比,这种语言似乎很奇怪。@user3866172-如果你从底部开始,然后向上,你会想看第9、8、7、6行。。。不是2,3,4。。。。步长是在循环的每次迭代中添加到x的量。如果您不清楚编程语法,那么MSDN是一个很好的地方。