excel - 批量数据列(表)中的循环复制值
问题描述
下午好,
我有一个关于在面对大量数据时在列内复制的问题。
基本上我有一个可重复的表格。
Eaxch 表从 B 列开始,继续向下 53 列到 BB 列,然后有 3 个空列,下一个表从 BF 列开始到 EF 列,最后一个从 EJ 到 HJ 列。
然后我想复制例如 B 列,将其粘贴到 FN 列中,知道这是我表的最左侧部分。要复制另一列,我必须知道,表格的最左列和最右列之间的距离是 53(它们是相同的),而第一个表的最左列和第二个表的最左列之间的距离是 56。最初我计算了像 COLUMNS(FN11:HN11) =53 这样的列,这是一个简单的 Excel 公式。接下来我使用了这段代码:
Sub cols_UK()
Sheets("14").Activate
Range("A11:A4739").Copy
Range("FN11, HR11, JU11").PasteSpecial xlPasteValues
Range("B11:B4739").Copy
Range("FO11, HO11, HS11, JS11, JW11, LW11").PasteSpecial xlPasteValues
这显然有效,但这项工作非常乏味。
和这里一样:
Range("FM11, HQ11, JU11, LX11").Value = "1to10"
Range("FM479, HQ479, JU479, LX479").Value = "11to20"
Range("FM947, HQ947, JU947, LX947").Value = "21to31"
Range("FM1415, HQ1415, JU1415, LX1415").Value = "MONTH"
我想将一些值放在彼此之间有特定距离的列中。
在列的情况下是否有一些循环解决方案?
解决方案
这应该可以解决问题。如果您有任何问题,请告诉我。
Sub CopyTableInWorksheet()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim lStartColumn As Long
Dim lStartRow As Long
Dim lEndRow As Long
Dim lSpacer As Long
Dim lWidth As Long
Dim lPasteColumn As Long
'Set table size and spacing values
lStartColumn = 2
lStartRow = 2
lEndRow = 100000
lSpacer = 3
'Determine width of table, set the column number to start the new table, then copy and paste
lWidth = ws.Range(ws.Cells(lStartRow, lStartColumn), ws.Cells(lStartRow, lStartColumn).End(xlToRight)).Columns.Count
lPasteColumn = ws.Cells(lStartRow, lStartColumn).Column + lWidth + lSpacer
ws.Range(ws.Cells(lStartRow, 2), ws.Cells(lEndRow, ws.Range("B1").Column + lWidth)).Copy ws.Range(ws.Cells(lStartRow, lPasteColumn), ws.Cells(lEndRow, lPasteColumn + lWidth))
End Sub
推荐阅读
- amazon-web-services - 是否有允许的模式正则表达式来验证列表
- git - VSTS git 与 Visual Studio 2017 - 文件故障
- python - PyQt5 中的 Mayavi 集成:类的含义
- javascript - 展平一个数组,即 [[1, 2, 3], [4, 5], [6]] 应该给出 [1, 2, 3, 4, 5, 6] 的输出。代码中的错误来源
- python - 如何绘制带有条形值的条形图?
- ajax - 如何设置一个从文件动态加载图像并最好用烧瓶显示它们的站点
- ios - 获取 NSException 错误崩溃应用程序
- r - R:使用 FeatureImp$new 绘制重要性特征
- javascript - 如何使用 AngularJS 在 c# 中向我的后端提交表单?
- postgresql - MultiXactId 尚未创建——postgres 中出现明显的环绕错误