将电子表格的一半格式化为红色,然后向下填充直到最后一行

2024-02-12

我有一个宏,它成功地获取了一个有 44 列的表格,并将其减少到 12 列。它分割了顶部部分(我们的供应商没有发送任何库存,总列中的单元格将显示 0)并将其粘贴在工作表的顶部,并插入复选框(在一定程度上)。

我非常努力地制作一个降价表,但它无法正确显示。下面是(上)数据当前的样子和(下)期望的结果! :-)

理想情况下,我想做的是使顶部部分格式为红色(我们没有发送任何库存),并且复选框被填充到最后一行。我不知道该怎么做。我还想按“A”列(代码)对非红色部分进行排序。

非常欢迎任何帮助!

Thanks

Sub separate()
    Columns("A:N").Select
    Range("N1").Activate
    Selection.Delete Shift:=xlToLeft
    Columns("A:J").Select
    Range("J1").Activate
    Selection.Delete Shift:=xlToLeft
    Range("D5").Select
    Range("F1").Select
    ActiveCell.FormulaR1C1 = "CHK"
    Columns("F:F").Select
    Selection.Cut
    Columns("C:C").Select
    Selection.Insert Shift:=xlToRight
    Columns("G:J").Select
    Selection.Delete Shift:=xlToLeft
    Columns("G:H").Select
    Selection.Delete Shift:=xlToLeft
    Columns("L:L").Select
    Selection.Delete Shift:=xlToLeft
    Columns("G:G").Select
    Selection.Delete Shift:=xlToLeft
    Range("F5").Select
    Columns("C:C").Select
    Selection.Cut
    Columns("E:E").Select
    Selection.Insert Shift:=xlToRight
    Columns("J:J").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("J1").Select
    ActiveCell.FormulaR1C1 = "VAT"
    Range("J6").Select
Dim wb As Workbook, ws As Worksheet, myrange As Range
Set wb = ActiveWorkbook
Set ws = wb.Sheets("Sheet1")
Set range_i = Nothing
counter = 0
Tre = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
For Tr = 2 To Tre
If ws.Cells(Tr, 13) = 0 Then
    If Not myrange Is Nothing Then
        Set myrange = Union(myrange, Range(ws.Cells(Tr, 1), ws.Cells(Tr, 13)))
    Else
        Set myrange = Range(ws.Cells(Tr, 1), ws.Cells(Tr, 13))
    End If
    counter = counter + 1
End If

If Not range_i Is Nothing Then
    If ws.Cells(Tr, 13) > 0 Then
        Set range_i = Union(range_i, Range(ws.Cells(Tr, 1), ws.Cells(Tr, 13)))
    End If
Else
    If ws.Cells(Tr, 13) > 0 Then
        Set range_i = Range(ws.Cells(Tr, 1), ws.Cells(Tr, 13))
    End If
End If
Next Tr
Sheets.Add.Name = "summary"
Set Tws = wb.Sheets("summary")
myrange.Copy
Tws.Range("A1").PasteSpecial
range_i.Copy
Tws.Range(Cells(1 + counter, 1), Cells(1 + counter, 13)).PasteSpecial
    Sheets("Sheet1").Range("A1:M1").Copy
    Sheets("summary").Select
    Range("A1").Select
    Selection.Insert Shift:=xlDown
    Application.CutCopyMode = False
Application.DisplayAlerts = False
Sheets(Array("Sheet1")).Delete
Application.DisplayAlerts = True
    Columns("J:J").Select
    Selection.Delete Shift:=xlToLeft
    Range("D2").Select
    ActiveCell.FormulaR1C1 = "o"
    Columns("D:D").Select
    Range("D2").Select
    Selection.AutoFill Destination:=Range("D2:D268")
    Range("D2:D268").Select
    Range("E6").Select
End Sub

首先,您可能会从阅读中受益如何避免在 Excel VBA 中使用 Select https://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba这可以帮助提高代码的整体功能和性能,更不用说它可能有助于大大简化代码。


有几种方法可以实现您的目标。

我首先想到的是循环遍历一个设定范围(也许您可以根据当前代码中的某些内容来设置它),并且如果列 G 值是0将行文本颜色设置为红色。

例如;

Sub redtext()
    Dim TargetRow As Long
    
    For TargetRow = 1 To 10
        If Cells(TargetRow, "G").Value = "0" Then
            Range("A" & TargetRow & ":J" & TargetRow).Font.Color = vbRed
        End If
    Next TargetRow
End Sub

注意:上面是一个循环第 1 行到第 10 行的简单示例。您应该explicit引用您的对象(例如引用工作表/工作簿,就像没有此对象一样Cells()有一个implicit参考ActiveSheet.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将电子表格的一半格式化为红色,然后向下填充直到最后一行 的相关文章

  • 求除某些列之外的 SUM

    以下是我所拥有的 A B C D E F G H I J K 1 2 3 4 5 6 7 8 9 10 50 为了找到SUM
  • CURL 相当于使用 VBA 的 POST JSON 数据

    我知道这与之前提出的一些问题类似 但有些东西仍然对我不起作用 如何执行以下命令 curl X POST data statements json H Content Type application json user username p
  • xlwt 可以在单元格中创建一个包含标题和链接变量的超链接吗?

    例如 如何更改以下行 使 test 为变量 T 且 http google com http google com 是变量L ws write 0 0 xlwt Formula test HYPERLINK http google com
  • java.exe 以非零退出值 1 结束

    只是为了开始 我并不是真正尝试从 Android 中的 xlsx 文件中读取单元格 我已经尝试了几乎所有我在 Google 上搜索到的内容 但是每次 在两台不同的 PC 上 都是 Java 1 7 0 79 当我尝试构建 运行 这个应用程序
  • 在 Django(Python) 中向用户提供 Excel(xlsx) 文件下载

    我正在尝试使用 Django 创建和提供 Excel 文件 我有一个 jar 文件 它获取参数并根据参数生成 excel 文件 并且它可以正常工作 但是 当我尝试获取生成的文件并将其提供给用户下载时 文件损坏了 它的大小为 0kb 这是我用
  • alasql 需要已包含的 xlsx

    我正在尝试使用将数据导出到 Excel 工作表alasql and xlsx 我已遵循此处的所有准则 https github com agershun alasql wiki Xlsx https github com agershun
  • 关闭工作簿时删除范围,xls vba

    我想要范围 Range A2 G z 关闭工作簿时删除 有人可以帮我处理代码吗 谢谢 凯 这就是我尝试过的 Option Explicit Sub Makro1 insert clipboard Workbooks Pfl SchutzSt
  • 索引匹配不起作用

    对于下表 如果 A 列和 B 列都匹配 如何检索 C 列A 列 B 列 C 列城市 1 城市 10 本地城市 2 城市 21 远程城市 3 城市 1 远程城市 4 城市 2 本地 我尝试使用索引和匹配 但得到 N A Enter as an
  • 导入到 SQL Server 时忽略 Excel 文件中的列

    我有多个具有相同格式的 Excel 文件 我需要将它们导入 SQL Server 我当前遇到的问题是 有两个文本列我需要完全忽略 因为它们是自由文本 并且某些行的字符长度超出了服务器允许我导入的长度 这会导致截断错误 因为我的分析不需要这些
  • 根据其他列中的条件对列中的唯一值求和

    A B 1 Total 1 900 2 Product A 700 3 Product A 700 4 Product B 300
  • 强制刷新工作表的“最后一个”单元格

    Pressing Ctrl End in Excel takes you to the bottom right most cell of the worksheet 如果删除最后的行或列并保存工作簿 最后一个单元格以及滚动条都会更新 我记
  • 使用 VBA 使用另一个表中的值更新访问表

    我在数据库中有两个表 表 1 和表 2 我正在尝试根据表 2 中的数据使用 VBA 代码更新表 1 Example Table 1 PartNo Price Description A 100 B 200 Bad C 300 Table 2
  • 从VBA中的数组批量插入到sql中

    我正在尝试在 Excel 中构建一个按钮 将所选区域上传到 SQL Server 中的表中 第一行将自动视为列标题 这件事该怎么继续下去呢 我想要的是简单和超快的上传 这是我的想法 我将选择选定的区域 然后将其保存为 txt 文件 然后对其
  • 如何VBA等待Windows保存对话框和发送密钥

    我正在创建一个宏文件 用于下载并保存从 SAP 旧版本 7 20 中提取的数据 当出现保存对话框时 未检测到 Windows 对话框 因为我的客户端 SAP 版本是旧版本 7 20 现在我对此的解决方案是发送密钥 但问题是某些数据包含大量数
  • 如何获取 pandas 数据框并覆盖 Excel 工作簿中的特定工作表

    我想获取一个数据框并让它替换特定工作表中的现有数据 假设为sheet1 然后我想获取另一个数据框并将其附加到另一张工作表上的数据 比如说同一工作簿中的sheet2 目前 我必须将数据写入新的 Excel 工作簿 我无法在线找到如何实际替换我
  • VBA 中的求和函数

    我在 vba 中对单元格求和时遇到问题 我需要使用单元格 a b Range A1 function SUM Range Cells 2 1 Cells 3 2 但它不起作用 函数不是范围内的属性 方法 如果您想对值求和 请使用以下命令 R
  • 使用 C# 在 Excel 中查找和替换文本

    我想使用 C 在 Excel 中查找并替换一组文本 而且我希望此替换仅发生在第一行中的文本 我已经使用Google并找到了一些付费资源 例如Aspose API Spire Xls等 但我正在寻找开源资源或任何其他有效的方法来实现这一目标
  • Excel Add In - console.log 在哪里输出它的消息 - NodeJS

    我正在尝试使用 JavaScript API 创建 Excel 插件 但我不明白 console log 在哪里输出它们的消息 所有 Microsoft 文档都包含 console log 示例 但没有解释 console log 输出消息
  • Excel,多个 IF AND 更高效的公式

    我正在制作一个电子表格 如下所示 Index Diff Exc Sym Sec Result Criteria Met 3 42 2 07 0 86 0 92 1 83 1 95 0 38 2 93 0 87 0 23 2 01 0 09
  • VB:在 Adob​​e Illustrator、Photoshop 中分配给布尔属性

    在使用 VBA 自动化 Adob e Illustrator CS3 时 我发现分配一个布尔变量 to a 布尔属性结果总是分配 False Dim New Path As Illustrator PathItem Dim v As Boo

随机推荐

  • SetWindowSubclass 内的 msftedit.dll RichEdit 控件出现“访问冲突读取位置 0x00000008”错误

    我在单独的子类文件中有编辑控件 在开始工作 SetWindowSubclass 函数后 我是 C 新手 之前我使用 SetWindowLongPtr 进行子类化 它工作得很好 但有人建议我开始使用 SetWindowSubclass 我遇到
  • Grails 渲染插件在部署时不会渲染图像

    我正在使用 grails 渲染插件生成 pdf 在开发过程中 我使用带 src 的标签将图像包含到服务器上的图像中 它工作正常 但部署应用程序后就不再工作了 图像就消失了 我正在通过模板进行渲染 因此当我在 gsp 中调用此模板时 这是可以
  • IQueryable 复杂顺序 $sort 中仅允许使用字段

    我想对列表进行排序 当它是IEnumerable时它工作正常 但是我将其更改为IQueryable来查询MongoDB时 它不起作用 给我这个错误 System NotSupportedException sort 中仅允许使用字段 Que
  • python3 super 不适用于 PyQt 类

    python3中有一个简单的程序 from PyQt4 import QtCore import PyQt4 class Bar object def init self print Bar start super Bar self ini
  • 如何从来宾操作系统获取 Citrix XenServer VM 的唯一 ID?

    假设我有多个同名的 Citrix XenServer VM 或者 这些名字都是垃圾 没关系 从其中一台虚拟机上的来宾操作系统中 我如何以编程方式确定虚拟机的 ID 我希望虚拟机的 UUID 应该作为来宾操作系统的 BIOS 序列号 但事实并
  • Typo3 流体图像裁剪,高度失败

    使用此代码
  • TouchJSON 返回可变对象吗?

    我从网络服务接收一些 json 我使用 TouchJSON 库解析它 我保留数据供用户更改某些值 然后我想将其返回到网络服务 我得到的 JSON 对象在对象中包含 NSDictionary 对象 如下所示 id null created a
  • 开源、多平台、基于浏览器的屏幕捕获扩展? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在考虑一个项目 该项目涉及浏览器用户能够屏幕捕获任何网页的内容 最好是整个页面 而不仅仅是可见部分
  • 为什么 cqlsh 右对齐字符串?

    我发现使用 cqlsh 显示的字符串值是右对齐的 是否有一个原因 有没有办法左对齐字符串 cqlsh test gt create table test id int a ascii t text primary key id cqlsh
  • 当其中一个容器失败时,SSIS 包是否失败

    我有一个包含 1 个容器的包 如果该容器失败 ssis 包是否会失败 该物业 失败时失败包 对于容器来说是 false 这是否意味着只有当该属性设置为 TRUE 时包才会失败 否则只有容器状态失败 而包状态不是 是的 如果序列容器失败 则整
  • 获取webclient中通过AJAX生成的html

    我经常去某个网站查找资料 我心想 等等 我可以编程 当我可以编写一个为我做这件事的软件时 为什么我要手动访问这个网站呢 于是我开始了 我使用的是 C 所以我找到了 WebClient 和 Uri 我已经设法获取该网站的源代码 但出现的问题是
  • “弱参考”:需要脚踏实地的解释

    有人可以解释一下吗弱引用在德尔福 我注意到这个概念经常在我仔细检查的一些库 框架源代码中提到 我陷入了困境 想要对其有一个清晰的了解 通过接口引用相互引用的实例在基于引用计数的接口实现中使彼此保持活动状态 弱引用用于打破 让彼此活着 的熊抱
  • 无法实例化 DatePipe

    我正在尝试实例化一个DatePipe我的 Angular2 应用程序中要使用的对象transform 我正在开发的组件中的功能 import DatePipe from angular common Component export cla
  • Android SecurityException:uid xxxxx 无法显式添加帐户

    我收到错误消息 java lang SecurityException uid 10178 cannot explicitly add accounts of type net roughdesign swms 即使是我可以创建的最基本的示
  • 带有 RuntimeWarning 的 numpy 除法:double_scalars 中遇到无效值

    我写了以下脚本 import numpy d numpy array 1089 1093 e numpy array 1000 4443 answer numpy exp 3 d answer1 numpy exp 3 e res answ
  • Python从大型文本文件中读取完整行的块(列值拆分为多行)

    我想分块读取一个大的 txt 文件 c 2 5GB 然后在加载到数据库之前执行一些操作 该文件只有 2 列 列分隔符为 并且有资格double quotes 第二列中的值可以跨越多行 下面的示例 我想用这个answer https stac
  • 如何减少大量包装类的实现代码?

    我正在开发一个包含一些类的库 我们称它们为C1 C2 and Cn 这些类中的每一个都实现一些接口 即I1 I2 Im n gt m 库中对象之间的关系很复杂 我必须 为我的库用户提供一些 API 以使用智能指针访问这些对象 经过一番讨论
  • 由于 org.eclipse.core.runtime 无法启动 eclipse

    我将一些插件复制到我的 eclipse 安装中 特别是 Green 和 ObjectAid answer https stackoverflow com questions 14772602 create class diagram aut
  • iOS 中 UITouch 时间戳的精度是多少?

    iOS 中 UITouch 类的时间戳属性有多精确 毫秒 几十毫秒 我正在将 iPad 的内部测量值与贴在屏幕上的自定义触摸检测电路进行比较 发现两者之间存在相当大的差异 标准偏差约 15 毫秒 我已经看到它建议时间戳根据帧刷新间隔进行离散
  • 将电子表格的一半格式化为红色,然后向下填充直到最后一行

    我有一个宏 它成功地获取了一个有 44 列的表格 并将其减少到 12 列 它分割了顶部部分 我们的供应商没有发送任何库存 总列中的单元格将显示 0 并将其粘贴在工作表的顶部 并插入复选框 在一定程度上 我非常努力地制作一个降价表 但它无法正