Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA:复制可变范围中的单元格值_Vba_Excel - Fatal编程技术网

VBA:复制可变范围中的单元格值

VBA:复制可变范围中的单元格值,vba,excel,Vba,Excel,在下面的代码中,我最难识别变量范围“rngCell”中的特定单元格。在“If”语句中,我想复制rngCell(活动单元格所在)所在列或行中的特定单元格,而不是rngCell的值。我尝试过使用偏移量,但一直失败。示例:如果rngCell位于e42,我可能需要e2或a42中的值 多谢各位 Dim rngCell As Range Dim lngLstRow As Long Dim ws As Worksheet, resultsWS As Worksheet lngLstRow = ws.Used

在下面的代码中,我最难识别变量范围“rngCell”中的特定单元格。在“If”语句中,我想复制rngCell(活动单元格所在)所在列或行中的特定单元格,而不是rngCell的值。我尝试过使用偏移量,但一直失败。示例:如果rngCell位于e42,我可能需要e2或a42中的值

多谢各位

Dim rngCell As Range
Dim lngLstRow As Long
Dim ws As Worksheet, resultsWS As Worksheet

lngLstRow = ws.UsedRange.Rows.Count
Worksheets("FileShares").Select

j = 4
p = 1
q = 4
g = 6

Dim k&                      
For k = 9 To 50
With ws
    For Each rngCell In .Range(.Cells(8, k), .Cells(lngLstRow, k))

        For i = LBound(maxKeywords) To UBound(maxKeywords)
            If rngCell.Value = maxKeywords(i) And rngCell.Interior.ColorIndex = 3 Then
                resultsWS.Cells(g, 2).Offset(j + p, 0) = rngCell.Value

            g = g + 1

            j = q + p - 5 'Used to start at row 8 and every row after
            End If
        Next i
    Next rngCell

End With
Next k

如果
rngCell
为E42,则:

rngCell.EntireRow.Cells(1)    '>>A42
rngCell.EntireColumn.Cells(2) '>>E2


请注意,这只是代码的一部分。您向我们展示的代码将出现运行时错误91,因为从未分配
ws
。也没有任何必要
。选择
文件共享
表。我也对
暗淡的k和
感到震惊,因为你没有在任何地方使用。为什么不给它一个显式的命名类型,就像其他类型一样?@Mat'smugh我没有发布整个代码。刚刚发布了相关内容。我以后会记住不要使用类型提示,因为它们非常不受欢迎。谢谢你的建议。谢谢你,蒂姆。你2秒钟的思考让我省去了5个小时的头痛。
ws.Cells(rngCell.Row, 1)      '>>A42
ws.Cells(2, rngCell.Column)   '>>E2