首页 > 其他分享 >【VBA】可視セルや空白セルの位置を取得【SpecialCellsを使う】

【VBA】可視セルや空白セルの位置を取得【SpecialCellsを使う】

时间:2024-10-01 23:45:16浏览次数:8  
标签:VBA End SpecialCells Cells A1 可視 Select

参考元:【VBA】可視セルや空白セルの位置を取得【SpecialCellsを使う】
https://daitaideit.com/vba-specialcells/

SpecialCellsの使い方

'コメント
Cells.SpecialCells(xlCellTypeComments).Select
'定数
Cells.SpecialCells(xlCellTypeConstants).Select 'すべて
Cells.SpecialCells(xlCellTypeConstants, 1).Select '数値
Cells.SpecialCells(xlCellTypeConstants, 2).Select '文字
'数式
Cells.SpecialCells(xlCellTypeFormulas).Select 'すべて
Cells.SpecialCells(xlCellTypeFormulas, 1).Select '数値
Cells.SpecialCells(xlCellTypeFormulas, 2).Select '文字
Cells.SpecialCells(xlCellTypeFormulas, 16).Select 'エラー
'空白セル
Cells.SpecialCells(xlCellTypeBlanks).Select
'最後のセル
Cells.SpecialCells(xlCellTypeLastCell).Select
'可視セル
Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Select
'条件付き書式
Cells.SpecialCells(xlCellTypeAllFormatConditions).Select 'すべて
Range("A1").SpecialCells(xlCellTypeSameFormatConditions).Select '同じ条件
'データの入力規則
Cells.SpecialCells(xlCellTypeAllValidation).Select 'すべて
Range("A1").SpecialCells(xlCellTypeSameValidation).Select '同じ規則

例:コメントのセルを選択

Sub TEST1()
    
    'コメントのセルを選択
    Cells.SpecialCells(xlCellTypeComments).Select
    
End Sub

実行結果:


 

■可視セルを選択して不要行を削除

▼可視セルのみを削除
使う表

Sub TEST16()
    
    'A列で「A」以外である行を非表示
    For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
        If Cells(i, "A") <> "A" Then
            Rows(i).Hidden = True '非表示
        End If
    Next
    
    '表全体の値のみを取得
    With Range("A1").CurrentRegion.Offset(1, 0)
        .Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Delete
    End With
    
    'すべての行を表示
    Rows("1:100").Hidden = False
    
End Sub
手順としては、

①A列が『A』以外である行を非表示にする
②表全体の値のみを取得する
③可視セルを削除する
④行をすべて表示する

実行結果:

▼オートフィルタで表示行のみを削除

Sub TEST17()
    
    'A列を、「A」でフィルタ
    Range("A1").AutoFilter 1, "A"
    
    'フィルタした行を削除
    With Range("A1").CurrentRegion.Offset(1, 0)
        .Resize(.Rows.Count - 1).EntireRow.Delete
    End With
    
    'フィルタを解除
    Range("A1").AutoFilter
    
End Sub
VBAコードの流れとしては、

①オートフィルタでA列を『"A"』でフィルタ
②表示している行を削除
③フィルタを解除
という感じです。

実行結果:

标签:VBA,End,SpecialCells,Cells,A1,可視,Select
From: https://www.cnblogs.com/langQ/p/18444270

相关文章

  • 【VBA】表全体の範囲を取得する【CurrentRegionが便利です】
    参考元:【VBA】表全体の範囲を取得する【CurrentRegionが便利です】https://daitaideit.com/vba-currentregion/ポイントとなるVBAコード'CurrentRegionでセル範囲を取得WithRange("A1").CurrentRegion.Select'表の範囲を選択.Rows(1).Select'表の1行目を選択......
  • 【VBA】UsedRangeの範囲から最終行など取得【UsedRange.Rows.Countなど】
    参考元:【VBA】UsedRangeの範囲から最終行など取得【UsedRange.Rows.Countなど】https://daitaideit.com/vba-usedrange/ポイントとなるVBAコードWithActiveSheet.UsedRange.Select'使用しているセル範囲'行.Rows(1).Select'1行目.Rows(.Rows.C......
  • 【VBA】セル範囲をセルに代入するときの注意点【RangeにValueをつける】
    参考元:【VBA】セル範囲をセルに代入するときの注意点【RangeにValueをつける】https://daitaideit.com/vba-range-value/ポイントとなるVBAコード'セル範囲を値として別セルに代入Range("E1:G3").Value=Range("A1:C3").Value'OKRange("E1:G3")=Range("A1:C3")'ダメ......
  • Excel:vba编程中出现下标越界错误
    出现错误的原因有以下可能:(新手小白学习ing,记录学习,可能还有别的错误原因)1.表名出错,所以找不到目标表,更找不到具体范围(大小写也一定要一样)2.范围出错,比如下面的D2:D6,要确定是否存在这一列(注意vba里面的符号都是英文的)在Excel中,工作簿是一个小册子,工作表是小册子中的某一......
  • 【VBA】RangeやCellsの範囲を移動する【Offsetを使います】
    参考元:【VBA】RangeやCellsの範囲を移動する【Offsetを使います】https://daitaideit.com/vba-range-offset/ポイントとなるVBAコードCells(1,1).Offset(2,3).Select'Cellsを2行と3列だけ移動するRange("A1").Offset(2,3).Select'Rangeをを2行と3列だけ移動するVBA......
  • VBA代码解决方案第十八讲:激活一个EXCEL工作簿后,遍历工作表的方法一
    《VBA代码解决方案》(版权10028096)这套教程是我最早推出的教程,目前已经是第三版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码摆好。这套教程共三册,一百四十七讲,内容覆......
  • 【VBA】シートをクリアする
    参照元:【VBA】シートをクリアする【値のみや、初期化、範囲指定、2行目以降をクリアする】https://daitaideit.com/vba-sheet-clear/シートをクリアする1.値のみをクリア(.ClearContents)SubTEST1()'値のみをクリアCells.ClearContentsEndSub2.シートを......
  • WINCCV7.5SP2VBA编程8-通过事件执行脚本
    这一篇在新浪博客发表过,审核周期有点长,为了避免丢失,这里再记录一遍。有三种途径执行Wincc画面设计器的VBA脚本:事件、用户自定义菜单和工具栏、VBA编辑器。前面的学习是通过VBA编辑器执行的VBA程序,现在通过事件来练习VBA程序执行。还是在前面WINCC项目程序来做练习。打开项目编......
  • Wincc7.5sp2使用VBA6-全局模板、项目模板和页面模板
    这一篇博客在新浪发表过,那边还在审核,为了避免关闭服务,在这里再次发一遍。那边的博客发表后审核期间,如果想修改是不允许的,审核时间比较长,有点不合理。前面的VBA练习,都是针对具体的项目的具体画面进行编程,在wincc项目还可以全局VBA编程和具体项目VBA编程。我边看技术文档边做练习,......
  • VBA技术资料MF204:右键多按钮弹出菜单中使用图标
    我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解,从简单的入门、到入门后的提高、到数据库、到字典、到WordVBA的应用、到高级......