excel - 我需要一些帮助来选择 vba 中的范围
问题描述
Range("B2:C2").Select
Selection.Copy
Range("J2").Select
Selection.End(xlDown).Select
Range("B82706:C82706").Select
Range("C82706").Activate
Range(Selection, Selection.End(xlUp)).Select
ActiveSheet.Paste
Columns("B:C").Select
Range("B82695").Activate
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False
在这种情况下,B82706 和 c82706 的行号可能会有所不同,因此,我必须根据最后一个 J 列选择 B&C 列(直到结束数据)
请帮助我,在此先感谢
解决方案
在没有看到您的数据的情况下,我不确定这是否正确,但它应该看起来像这样:
- 在 J 列中找到最后使用的行(这是粘贴的结尾)。
- 在 B 列中找到最后使用的行(这是粘贴的开始)。
- 复制粘贴
- 将公式转换为值
Option Explicit
Public Sub Example()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1") 'define your worksheet name here
Dim LastRowInJ As Long 'find last used row in column J
LastRowInJ = ws.Cells(ws.Rows.Count, "J").End(xlUp).Row
Dim LastRowInB As Long 'find last used row in column B
LastRowInB = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
ws.Range("B2:C2").Copy Destination:=ws.Range("B" & LastRowInB, "C" & LastRowInJ)
Application.CutCopyMode = False
'turn formulas into values in column B and C
ws.Columns("B:C").Value = ws.Columns("B:C").Value
End Sub
始终确保您的Range
和Columns
对象被引用到工作簿。否则 Excel 可能会猜错工作簿。
还要避免使用.Select
,因为这会大大降低您的代码速度并降低其可靠性,因为可以通过鼠标单击轻松更改选择:如何避免在 Excel VBA 中使用选择。
推荐阅读
- sql-server - SQL Server Reports Builder - 显示当周日期(帮助)
- java - 使用 restController 发布对象
- azure - ASP.NET MVC Core Azure Blob Image Resizer
- r - 计算R中数字字符串的可变性指数
- excel - 如何使用 Odoo 10 中的向导生成 Excel 报告,只需单击一下
- tensorflow - 用于车牌识别的预训练 LeNet 模型
- python - OpenCV VideoCapture on Large files looping back to start frame after 4000+ frames
- node.js - React Native 注册表与后端 mongodb 和 node xpress
- javascript - 如何在nodejs的更新查询中将DATE_SUB()作为参数传递
- html - 如何在线条元素之间创建相等的间距