宏指令:删除单元格中所有<div之后的内容

最近在清洗数据,由于是从代码库里拉出的内容,需要进行清洗html标签,就整理了如下指令:

宏指令1:删除单元格中所有<div之后的内容


Sub RemoveDivAndAfter()
    Dim rng As Range
    Dim cell As Range
    Dim divPos As Integer ' 用于记录 "<div" 首次出现的位置
    
    ' 检查是否选中了单元格区域
    If TypeName(Selection) <> "Range" Then
        MsgBox "请先选中需要处理的单元格区域!", vbExclamation
        Exit Sub
    End If
    
    ' 遍历选中区域的每个单元格
    For Each cell In Selection
        ' 只处理非空单元格
        If cell.Value <> "" Then
            ' 查找 "<div" 在单元格内容中首次出现的位置(不区分大小写)
            divPos = InStr(1, LCase(cell.Value), "<div")
            
            ' 如果找到 "<div",则保留其前面的内容;否则不修改
            If divPos > 0 Then
                cell.Value = Left(cell.Value, divPos - 1)
            End If
        End If
    Next cell
    
    MsgBox "处理完成!已删除所有单元格中 '<div' 及其后面的内容。", vbInformation
End Sub

使用步骤:

  1. 打开 WPS 表格,按下 Alt + F11 打开 VBA 编辑器; 点击菜单栏「插入」→「模块」,将上面的代码粘贴到新建的模块中;
  2. 关闭 VBA 编辑器,回到表格界面,选中需要处理的单元格区域(如 A1:C100);
    
  3. 按下 Alt + F8 打开宏窗口,选择RemoveDivAndAfter 宏,点击「运行」;
  4. 处理完成后会弹出提示框,所有选中单元格中 <div 及之后的内容会被自动删除。

说明:

  1. 代码会忽略空单元格,只处理有内容的单元格;
  2. 不区分 <div 的大小写(即 <DIV <Div 等也会被识别并处理);
  3. 若单元格中没有 <div 标签,则内容保持不变,不影响原有数据。
  4. 如果需要处理整个工作表,可将代码中的 Selection 改为:
   ActiveSheet.UsedRange(替换第 8 行的 Set rng = Selection 为 Set rng =
    ActiveSheet.UsedRange)。
<template> <div class="page"> <BasicForm class="form" @register="register" /> <div class="flex"> <List :list="list" /> <div class="flex items-center"> <pieChart :value="34" /> <div class="pos-relative flex-col"> <Item v-for="(item, index) in list1" :key="index" v-bind="item" /> </div> </div> <div class="flex items-center"> <pieChart :value="77" /> <div class="pos-relative flex-col"> <Item v-for="(item, index) in list2" :key="index" v-bind="item" /> </div> </div> </div> <div class="flex"> <div class="leftchart mt-7 w-1/2"> <div class="header1 flex justify-between pt-2"> <div class="ml-40 c-#00EAFF">配置图表</div> <div class="flex"> <div :class="type == index ? 'active' : 'default'" v-for="(item, index) in buttons" :key="index" @click="type = index" > {{ item }}</div > </div> </div> <lineChart1 :data="data" :x="x" /> </div> <div class="leftchart mt-7 w-1/2"> <div class="header2 flex justify-between pt-2"> <div class="ml-40 c-#00EAFF">配置图表</div> <div class="flex"> <div :class="type == index ? 'active' : 'default'" v-for="(item, index) in buttons2" :key="index" @click="type = index" > {{ item }}</div > </div> </div> <lineBarChart :data="data2" :x="x2" /> </div> </div> <div class="leftchart mt-7 w-full"> <div class="header3 flex justify-between"> </div> <div class="content flex"> <GaugeChart /> <pieChart1 /> <lineBarChart1 /> <DetectionIndex /> </div> </div> <div class="leftchart mt-7 w-full"> <div class="header4 flex justify-between"> </div> <div class="fjsblb"> <p>风机设备列表</p> <a-input-search v-model:value="value" style="width: 326px; height: 40px; padding-left: 12px;" placeholder="按风机名称筛选" search /> </div> <div class="draughtTable"></div> </div> </div> </template> <script lang="ts" setup> import { BasicForm, useForm } from '/@/components/Form'; import List from './components/list.vue'; import pieChart from './components/pieChart.vue'; import pieChart1 from './components/pieChart1.vue'; import lineChart1 from './components/lineChart.vue'; import lineBarChart from './components/lineBarChart.vue'; import lineBarChart1 from './components/lineBarChart1.vue'; import GaugeChart from './components/GaugeChart.vue'; import DetectionIndex from './components/DetectionIndex.vue'; import Item from './components/item'; import { ref, h } from 'vue'; const type = ref(0); const buttons = ['1小时', '24小时']; const buttons2 = ['周', '月', '季', '年']; const list1 = ref([ { name: '总出力(MW)', value: 32.81, }, { name: '总容量(MW)', value: 97.36, }, ]); const list2 = ref([ { name: '当年发电量·实际/全年计划(万kWh)', value: '9460.1 / 12310', }, { name: '当年利用小时·实际/全年目标(h)', value: '1259 / 1638', }, ]); const [register] = useForm({ schemas: [ { label: '场站', field: 'fengchang', component: 'Select', componentProps: { placeholder: '请选择风场', }, }, ], labelWidth: 120, baseColProps: { lg: 6, md: 6 }, showResetButton: true, showSubmitButton: true, }); const list = [ { name: '正常发电', value: 154, color: '#2BFCCF', }, { name: '限功率', value: 0, color: '#F41EFF', }, { name: '用户停机', value: 1, color: '#fff', }, { name: '故障停机', value: 0, color: '#FF5B5B', }, { name: '服务停机', value: 0, color: '#FFFB97', }, { name: '电网故障', value: 0, color: '#BE56FF', }, { name: '技术待机', value: 0, color: '#C4CDA4', }, { name: '环境待命', value: 0, color: '#fff', }, { name: '未知状态', value: 0, color: '#66EFD4', }, ]; const data = ref([ { name: '风机有功功率总计', yAxisIndex: 0, data: [25, 35, 22, 29, 33, 28], color: '#D9D92E', }, { name: '风速', yAxisIndex: 1, data: [4, 6, 5, 7, 4, 3], color: '#1CD6C0', }, { name: '理论功率', yAxisIndex: 0, data: [25, 16, 32, 24, 26, 32], color: '#0E9CFF', }, { name: '场站ACG指令值', yAxisIndex: 0, data: [29, 24, 33, 19, 35, 22], color: '#FF830F', }, ]); const data2 = ref([ { name: '完成率', yAxisIndex: 1, data: [7, 9, 6, 9, 8, 7, 8], type: 'line', color: '#D9D9D9', }, { name: '计划发电量', yAxisIndex: 0, type: 'bar', data: [22, 23, 25, 27, 24, 23, 20], color: '#19C2FF', }, { name: '理论功率', yAxisIndex: 0, type: 'bar', data: [25, 16, 32, 24, 26, 32, 44], color: '#26FFC9', }, { name: '场站ACG指令值', yAxisIndex: 0, type: 'bar', data: [29, 24, 33, 19, 35, 22, 32], color: '#FBC935', }, { name: 'PBA', yAxisIndex: 1, type: 'line', data: [7, 5, 8, 5, 9, 7, 5], color: '#4476FF', }, ]); const x = ref(['18:00', '18:05', '18:10', '18:15', '18:20']); const x2 = ref(['周一', '周二', '周三', '周四', '周五', '周六', '周日']); </script> <style lang="less" scoped> .page { padding: 0 3vh; .form { margin-left: 15%; } } .leftchart { .header(@bg) { background: url(@bg); background-size: cover; width: 100%; height: 41px; } .common1 { width: 60px; height: 22px; text-align: center; margin-right: 10px; cursor: pointer; } .active { background: linear-gradient(180deg, rgba(15, 74, 159, 0) 0%, rgba(17, 75, 160, 0.95) 100%); border: 1px solid rgba(30, 123, 214, 0.8); color: #d8f0ff; text-shadow: 0px 0px 10px #0091ff, 0px 0px 4px #0091ff; .common1(); } .default { background: linear-gradient(180deg, rgba(15, 133, 159, 0) 0%, rgba(17, 100, 160, 0.95) 100%); border: 1px solid rgba(0, 66, 131, 0.8); color: rgba(216, 240, 255, 0.7); text-shadow: 0px 0px 10px #0091ff, 0px 0px 4px #0091ff; .common1(); } .header1 { .header('/@/assets/images/fj/cz/header1.png'); } .header2 { .header('/@/assets/images/fj/cz/header2.png'); } .header3 { .header('/@/assets/images/fj/cz/header3.png'); } .header4 { .header('/@/assets/images/fj/cz/header4.png'); } .content { // height: 360px; margin-top: 3px; background: linear-gradient(136deg, rgba(0, 156, 223, 0.2) 50%, rgba(0, 156, 223, 0.05) 100%); border-radius: 11px; margin-bottom: 30px; } .fjsblb { margin: 32px 37px; color: #d8f0ff; display: flex; align-items: center; p { margin-right: 14px; font-size: 16px; color: #A6C9E3; } a-input-search { width: 200px; } } } </style> 在 <div class="draughtTable"></div> 处加一个table,用antdesginvue组件库, 表头是:风机名称、运行状态、通讯状态、实施阶段、状态码、状态字描述、持续时间、风速(m/s)、有功功率(kW)、当日发电量(kWh)、当月发电量(kWh)、当年发电量(kWh); 行内容目前是假数据,对应表头列:江西太阳山风电场01、正常发电、通讯正常、已接入、SC_DT-MY29_0、系统正常、4天3小时30分钟、8.8、2159.81、27,092、383,304、4,582,664; 一共七行数据, 等后端接口出来后再调用接口, 换字段, 现在先用我给的假数据, 用vue3+ts+antdesginVue, 样式less语法, 并且把备注给我写出来, 给我完整代码
10-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值