excel - 需要在我的代码中排除一个单词(或字符数)
问题描述
我正在尝试创建一个模块,它将为我的团队在工作中格式化一个 Excel 电子表格。有一列将包含“CPT”一词和各种带有描述的 CPT 代码。我需要删除 5 位 CPT 代码后的所有文本(CPT 描述),但还要在其他单元格中保留单词 CPT。
例如: S 列第 6 行仅包含单词“CPT”(不在引号中) 然后 S 列第 7 行包含文本“99217 Observation Care Discharge”
此设置在整个 S 列中重复多次。
我希望第 6 行保持不变(“CPT”),但在第 7 行我只想保留“99217”
不幸的是,这是不可能手动完成的,因为有几个人需要这个宏,我们的电子表格可以在这个列中使用不同的 CPT 代码和描述重复数百次这个措辞。
我尝试过各种 If/Then 语句,If/Then/Else
Sub CPTcolumn()
Dim celltxt As String
celltxt = ActiveSheet.Range("S6" & Rows.Count).End(xlUp).Text
Dim LR As Long, i As Long
LR = Range("S6" & Rows.Count).End(xlUp).Row
For i = 1 To LR
If InStr(1, celltxt, "CPT") Then
Next i
Else
With Range("S6" & i)
.Value = Left(.Value, InStr(.Value, " "))
End With
Next i
End If
End Sub
当我尝试运行它时,我得到各种“编译错误”
解决方案
您的第一个错误将发生在这里:
ActiveSheet.Range("S6" & Rows.Count).End(xlUp).Text
因为您正试图从从 开始的最后使用范围中检索文本.End(xlUp)
,Range("S61048576")
这大约是 Excel 中行限制的 58 倍。您可能会更改Range("S6" & Rows.Count)
为Range("S" & Rows.Count)
您的第二个错误将发生在这里:
LR = Range("S6" & Rows.Count).End(xlUp).Row
这将是相同的错误。
这里会出现第三个错误:
For i = 1 To LR
If InStr(1, celltxt, "CPT") Then
Next i
你不能If-End If
在循环中嵌套一半的块,For-Next
反之亦然,你已经完成了这两个。如果要迭代并执行If-End If
每次迭代,则需要If-End If
在For-Next
like中包含
For i = 1 To LR
If InStr(1, celltxt, "CPT") Then
'Is the purpose here to do nothing???
Else
With Range("S" & i)
.Value = Left(.Value, InStr(.Value, " "))
End With
End If
Next i
编辑:
为了技术准确性,您的第一个错误实际上是您的分解For-Next
,If-End If
因为您甚至无法编译以执行代码以遇到其他两个错误。
推荐阅读
- python - ISO3166没有正确导入方法-Pycharm
- python - Python:如何在带有“{”字符的 SQL 字符串中插入变量?
- google-cloud-firestore - Firestore子集合查询
- azure - 将 Azure 策略定义部署到管理组权限
- android - 在约束布局上,BottomNavigationView 高度计算为零
- flutter - 是否可以像在 JS 中那样在 dart(Flutter) 中实现 Future<>s 模式?
- javascript - 单选按钮 .prop(选中为真)但未显示勾号
- python - 如何从python中的txt文件的最后一列中提取数字?
- python - python中的名称错误,同时在另一个函数变量中调用其他函数,已经在被调用但显示未定义的函数中定义
- php - 为 htaccess 重定向创建豁免