现在有一个问题:就是选 定一个区域,查找区域内符合条件的单元格并删除单元格所在的列,我现在的解决方法如下:
n Error Resume Next'清除指定内容With ActiveSheet.UsedRange Application.ScreenUpdating = False
DoSelection.Find(What:=TextBox1.Text, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False _
, MatchByte:=False, SearchFormat:=False).EntireColumn.Delete
Loop Until Selection.Find(What:=TextBox1.Text) Is Nothing
Application.ScreenUpdating = TrueEnd With
这样产生的问题是:删除一列后,后面的列会上移,如果上移的列也有符合条件的内容 ,那么上移的列也会删除,产生误删,如何能解决不删除 上移的列。
n Error Resume Next'清除指定内容With ActiveSheet.UsedRange Application.ScreenUpdating = False
DoSelection.Find(What:=TextBox1.Text, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False _
, MatchByte:=False, SearchFormat:=False).EntireColumn.Delete
Loop Until Selection.Find(What:=TextBox1.Text) Is Nothing
Application.ScreenUpdating = TrueEnd With
这样产生的问题是:删除一列后,后面的列会上移,如果上移的列也有符合条件的内容 ,那么上移的列也会删除,产生误删,如何能解决不删除 上移的列。
解决方案 »
- 在XP系统下office2010中word无法直接打开的问题
- iexplorer无法卸载
- 无解的需求啊。。求助啊~
- 【100分】windows server 2003 域控 开机6个小时以上。跪求解决办法
- ie11 开发者工具 的功能导航栏 如何调节横置或者纵置?
- windows计划任务中,如何设置“打开A程序”作为触发器?
- 求大神解答gpt mbr
- 在不关闭防火墙的情况下如何解决虚拟机和主机之间ping不通的问题
- dos(cmd)倒计时关机(新手上路到多 )
- 求助 win10 system firmware无法启动
- RtlInitAnsiString和RtlAnsiStringToUnicodeString不能正确工作的问题
- 在扩展屏上显示一个无法获取鼠标键盘事件的window
在最外层定义一个boolean类型的flag,默认为false,标识当前是否正在处理,可以用这个判断Worksheet_SelectionChange是手动触发还是代码触发
触发Worksheet_SelectionChange时,如果flag=true,不执行代码,如果flag=false的话,把flag设置为true,并执行代码
EXCEL VBA里涉及到单元格内容的遍历效率很低Dim exing As Boolean
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If exing = True Then Exit Sub
exing = True
Dim colIndex As Integer, rowIndex As Integer, colCount As Integer, rowCount As Integer
colIndex = Selection.Column
rowIndex = Selection.Row
For i = (colIndex + colCount - 1) To colIndex Step -1
'Range(Cells(rowIndex, i), Cells(rowIndex + rowCount - 1, i)).Find(...
Next i
exing = False
End Sub