Excel VBA是';t正确验证整数值以进行比较
基本上,我尝试遍历列中值小于50的单元格(R:R) 代码如下: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
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是一个很好的地方。