VBA Excel对删除空单元格后向左移动操作的判断 急急急???

hanakoko 2010-07-11 12:55:46
Sub 空白セルを削除して左詰めにする()

Dim myAr As Variant
Dim myAr2() As Variant
Dim i As Long, j As Long, k As Long
Dim a As Integer

With Range("A2").CurrentRegion.Resize(10000, 5) '行数指定可,列はE列(5)まで,アクティブセル未対応
myAr = .Value
'    .ClearContents
ReDim myAr2(1 To UBound(myAr, 1), 1 To UBound(myAr, 2))
For i = 1 To UBound(myAr, 1)
For j = 1 To UBound(myAr, 2)
If myAr(i, j) <> "" Then
a = 1
If Range("A" & j).Value Like "*店*" Then
a = 0
End If
If a <> 0 Then
k = k + 1
myAr2(i, k) = myAr(i, j)
End If
End If

Next j
k = 0
Next i
Application.ScreenUpdating = False
.Value = myAr2
Application.ScreenUpdating = True
End With

End Sub


我要的结果是A列含[店]字的就不删除空单元格向左移动,现在的代码是不管含不含店都移动
...全文
455 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzqgj 2010-07-11
  • 打赏
  • 举报
回复
不然用instr函数代替?like看不出问题所在
If Range("A" & j).Value Like "*店*" Then
a = 0
End If
If a <> 0 Then
k = k + 1
myAr2(i, k) = myAr(i, j)
End If
好像有点复杂,改成
If Range("A" & j).Value Like "*店*" Then
k = k + 1
myAr2(i, k) = myAr(i, j)
End If

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧