基于其他工作表行号选择活动工作表A列单元格范围的VBA问题
修正后的VBA代码及说明
原代码的核心问题是Range对象的语法错误,你想要用Math工作表中C3、D3的数值作为活动表A列的起始/结束行号,正确的写法应该先提取这两个行号值,再构建目标单元格范围。
修正代码:
Sub FillRangeFromMathSheet() Dim startRow As Long Dim endRow As Long Dim targetRange As Range ' 从Math工作表读取起始行和结束行的数值 startRow = ThisWorkbook.Worksheets("Math").Range("C3").Value endRow = ThisWorkbook.Worksheets("Math").Range("D3").Value ' 定义活动工作表中A列的目标范围 Set targetRange = ActiveSheet.Range("A" & startRow & ":A" & endRow) ' 将Math!A3的值填充到目标范围 targetRange.Value = ThisWorkbook.Worksheets("Math").Range("A3").Value End Sub
关键修正点:
- 先单独读取Math表C3、D3的数值作为行号,避免直接在Range里写公式引用导致语法错误
- 用
"A" & startRow & ":A" & endRow拼接出正确的单元格范围地址 - 明确引用工作表对象,避免因活动表切换导致的错误
内容的提问来源于stack exchange,提问作者Jeremy
相关产品推荐
相关产品推荐

