vba - Excel VBA多单元格编辑使用范围
问题描述
下面的代码所做的是获取一列数据并通过在电子表格中移动它来将其除以 100。这里的问题是有多个(不连续的)数据列需要除以 100(例如)。
LastRow = Range("K" & Rows.Count).End(xlUp).Row
Columns("K:K").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveWindow.SmallScroll Down:=18
Range("K15").Select
ActiveCell.FormulaR1C1 = "=RC[1]/100"
Range("K15").AutoFill Destination:=Range("K15:K" & LastRow)
Range("K15:K" & LastRow).Select
Selection.Copy
Range("L15").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("K:K").Select
有时有连续的列(例如列K到N)需要除以100。(我认为)代码设置的方式,我不能一次划分多列数据......
我该怎么做呢?如果有一种完全不同的方式来编码这个方法,以便它适用于多个单元格,我全神贯注(或者在这种情况下是眼睛)
-杰克
解决方案
使用值数组,处理缩减,然后将新缩减的值批量加载到工作表中。
dim i as long, j as long, arr as variant
with worksheets("sheet1")
arr = .range(.cells(1, "K"), .cells(.rows.count, "N").end(xlup)).value2
for i=lbound(arr, 1) to ubound(arr, 1)
for j=lbound(arr, 2) to ubound(arr, 2)
arr(i, j) = cdbl(arr(i, j) / 100)
next j
next i
.cells(1, "K").resize(ubound(arr, 1), ubound(arr, 2)) = arr
end with
此方法假定您只是插入一列来帮助处理;它会覆盖所有内容。
推荐阅读
- javascript - 无法在 Sinon 中对 Firebase 功能进行单元测试
- reactjs - React 中的 props 和紧耦合组件如何处理?
- batch-file - 如何使用 ffmpeg 将 rmvb 转换为相同质量的 mp4?
- sql - 不使用任何函数或 where 子句的表的最后一行
- linux - 更新 .sql 文件时 Docker 不更新卷
- php - 如何动态传递多个参数获取请求以检查 fbtoken 是否有效
- arrays - 如何在同一个 Swift 循环中迭代三个或更多数组?
- c# - 在 VS 社区中编译 .NET Core 应用程序(不同的运行时)
- c - 返回字符串与c中函数中的字符串不同
- keras - Keras张量流:InvalidArgumentError:节点'IsVariableInitialized_2196'