VBA单元格自适应高亮操作

1、单元格所在行和列高亮

第一种方式

Private Sub worksheet_selectionchange(ByVal target As Range)
    Cells.Interior.ColorIndex = xlColorIndexNone
    target.EntireRow.Interior.ColorIndex = 6
    target.EntireColumn.Interior.ColorIndex = 50
End Sub

第二种方式

Private Sub worksheet_selectionchange(ByVal target As Range)
    Dim rng As Range
    Cells.Interior.ColorIndex = xlNone
    Set rng = Application.Union(target.EntireRow, target.EntireColumn)
    rng.Interior.ColorIndex = 56
End Sub

需注意:代码需在sheet中运行,运行区域高亮后不可使用复制粘贴等操作,以前单元格格式会被新格式被覆盖。同时若代码中含单元格值改变时保护单元格也会和上面代码冲突。

2、展示所有颜色代码到单元格中

Sub 颜色()
    Dim i
    With Sheet2
        For i = 1 To 56
            .Cells(i, 1).Value = i
            .Cells(i, 1).Interior.ColorIndex = i
        Next
    End With
End Sub

3、数据录入后的单元格自动保护

Private Sub worksheet_selectionchange(ByVal target As Range)
    On Error Resume Next
    Sheet1.Unprotect Password:="hj1905"   ‘取消工作表单元格保护
    If target.Value <> "" Then
        target.Locked = True
        Sheet1.Protect Password:="hj1905"
    End If
End Sub

4、关于事件中的target

1)事件中可使用target的address属性限定target的单元格触发范围

2)target的row和column属性限定行列范围,整行和整列用entirerow 和entirecolumn

3) 用于intersect函数中,也可判定选定某区域执行某个操作

target在

[a1:a10], [c1:c10]范围会弹出相应地址
Private Sub worksheet_selectionchange(ByVal target As Range)
    If Not Application.Intersect(target, Union([a1:a10], [c1:c10])) Is Nothing Then
        MsgBox "you choose " & target.Address(0, 0)
    End If
End Sub

 保护单元格操作写法2:

Private Sub worksheet_selectionchange(ByVal target As Range)
    Dim rng As Range
    Set rng = Union([b2:c10], [e1:f10])
    If Application.Intersect(target, rng) Is Nothing Then Exit Sub
    [a1].Select
    MsgBox "you cannot edit " & rng.Address(0, 0) & " area"
End Sub

  

 

原文地址:https://www.cnblogs.com/hqczsh/p/11729562.html

时间: 2024-10-31 11:35:10

VBA单元格自适应高亮操作的相关文章

基于.NET的Excel开发:单元格区域的操作(读取、赋值、边框和格式)

引用 using Excel = Microsoft.Office.Interop.Excel; 定义 1 Excel.ApplicationClass app; 2 Excel.Workbooks books; 3 Excel.Workbook book; 4 Excel.Sheets sheets; 5 Excel.Worksheet sheet; 6 Excel.Range m_objRange; 7 object missing = System.Reflection.Missing.V

[Excel VBA]单元格区域引用方式的小结

在使用ExcelVBA进行编程时,我们通常需要频繁地引用单元格区域,然后再使用相应的属性和方法对区域进行操作.所谓单元格区域,指的是单个的单元格.或者是由多个单元格组成的区域.或者是整行.整列等.下面,我们设定一些情形,以问答的形式对引用单元格区域的方式进行归纳. 问题一:在VBA代码中,如何引用当前工作表中的单个单元格(例如引用单元格C3)?回答:可以使用下面列举的任一方式对当前工作表中的单元格(C3)进行引用.(1) Range("C3")(2) [C3](3) Cells(3,

Excel单元格的日常操作

通过右键选择插入来移动单元格 灵活的运用"整行" 与 "整列" 选中区域之后 通过点击区域边框进行移动 按住shift之后框会变成线 更容易拖动 按住ctrl拖动区域会产生复制的效果 同时也可以按住shift 变成一条线更容易拖动 原文地址:https://www.cnblogs.com/newt/p/9277379.html

Excel 2003 中如何用VBA 代码访问单元格里的值及操作单元格 - 唐诗宋词的专栏 - 博客频道 - CSDN.NET

在Excel 中编写VBA 代码,最常做的事可能就是操作表单中单元格里的数据. 我这里总结一下如何从VBA 代码中操作单元格的数据. 在VBA 代码中操作单元格需要用到Range 对象,Range 是Excel 库(即Excel.exe文件)提供的一个类,封装了对表单中单元格的所有操作.Range 对象可以是一个单元格,一行单元格,一列单元格,或者四方的连续的单元格范围,甚至是几个单元格范围组合在一起.至于一个具体的Range 对象到底代表什么,就看我们怎么构造它了.(注,Range 类不支持N

c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)

一.单元格内容的操作 *****// 取得当前单元格内容 Console.WriteLine(DataGridView1.CurrentCell.Value); // 取得当前单元格的列 Index       Console.WriteLine(DataGridView1.CurrentCell.ColumnIndex); // 取得当前单元格的行 Index       Console.WriteLine(DataGridView1.CurrentCell.RowIndex); ******

[Xcode10 实际操作]五、使用表格-(3)设置UITableView单元格图标

本文将演示如何给表格行设置图标. 打开资源文件夹[Assets.xcassets], 在资源文件夹中导入两张图片:一张彩色,一张灰色,作为单元格的图标. [+]->[Import]->[Open] 在项目导航区,打开视图控制器的代码文件[ViewController.swift] 1 import UIKit 2 3 //首先添加两个协议. 4 //一个是表格视图的代理协议UITableViewDelegate 5 //另一个是表格视图的数据源协议UITableViewDataSource 6

[从产品角度学EXCEL 03]-单元格的秘密

这是<从产品角度学EXCEL>系列——单元格的秘密. 前言请看: 0 为什么要关注EXCEL的本质 1 EXCEL是怎样运作的 2 EXCEL里的树形结构 或者你可以去微信公众号@尾巴说数 获得连载目录. 本文仅由尾巴本人发布于特定网站.不接受任何无授权转载,如需转载,请先联系我,非常感谢. 在讲了excel的树形结构之后,我们终于要进入正题,研究单元格的秘密了. 当我们打开excel的时候,首先映入眼帘的就是一大片格子,这就是单元格. 在excel里,单元格承担了几乎所有的存储信息的功能.你

easyui前台改变datagrid某单元格的值

有时候前台完成某个操作后要修改datagrid的值, 也许这个datagrid是没有保存的, 所以要修改后才能传递到后台; 也许要其他操作过后才需请求后台; 这些情况都需要前台对datagrid的单元格进行修改操作: 假设我们有一个” staffLogDetailGrid”的datagrid; // 得到columns对象 var columns = $('#dg').datagrid("options").columns; // 得到rows对象 var rows = $('#dg'

UITableView单元格不见删除按钮

现象:初学使用tableview的时候,进行单元格的删除操作,发现点击编辑的时候,或者滑动单元格的时候,左边的红色减号可以出来,但是右边的删除按钮却没有出来. 原因:这是一个低级错误,初学对布局不熟的时候,可能会犯,其实不是删除按钮没出来,而是删除按钮藏在屏幕之外了,不信你转动屏幕为横屏试试,说不定可以看到哦! 解放方法:将tableview的布局reset为建议约束.