簡體   English   中英

Excel VBA 在列和行值的范圍選擇中使用字符串變量

[英]Excel VBA Using String Variables inside a Range selection for Colum AND Row values

上周這一直讓我感到沮喪,所以我崩潰並尋求幫助。 我已經徹底搜索了這個並沒有能夠破解它......希望有人能救我!

我需要將范圍選擇從一個工作表復制到另一個工作表,這應該是一項簡單的任務,但是范圍是基於動態的。查找結果...我能夠將所有必需的數據傳遞給變量,但獲取那些字符串變量沒有問題(列行值)到要復制的范圍不斷給我“運行時錯誤1004:范圍class的PasteSpecial方法失敗......”

PasteSpecial 錯誤調試

這是我目前的完整代碼:

Private Sub AutoFill_Week_One()

Dim Well_1 As Range
Dim GasComp As Range

Dim gRow As Integer
Dim lRow As Integer

Dim GsRow As String
Dim LsRow As String

Dim GsDate As String
Dim LsDate As String

Dim GsRngS As String
Dim GsRngE As String
Dim LsRngS As String
Dim LsRngE As String

Dim GsComp As String
Dim LsComp As String


With Sheets("CSV Import")

Set Well_1 = Range("O1:O200").Find("102040307310W600")
 Well_1.Activate
    
    gRow = ActiveCell.Row
    
        GsRow = "A" & CStr(gRow)
        
If Range(GsRow).value = "G" And Well_1.value = "102040307310W600" Then

          GsDate = "E" & CStr(gRow)

MsgBox GsDate

Range(GsDate).Copy

Sheets("Week One").Range("F31").PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

GsRngS = "T" & CStr(gRow)
GsRngE = "AG" & CStr(gRow)




GsComp = GsRngS & ":" & GsRngE

MsgBox GsComp

Set GasComp = .Range(GsComp)



GasComp.Copy

Sheets("Week One").Range("F33:F46").PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

End If

Set Well_1 = Range("O1:O200").FindNext(Well_1)
 Well_1.Activate
    
    lRow = ActiveCell.Row
    
        LsRow = "A" & CStr(lRow)

 If Range(LsRow).value = "L" And Well_1.value = "102040307310W600" Then

MsgBox "Liquid"

End If

End With

End Sub

抱歉,我知道這段代碼有點被破解了,但我已經嘗試過 arrays、.offset 以及我能想到的所有其他事情,但沒有運氣......

有什么想法嗎?

提前非常感謝!

嘿 BigBen,轉移工作正常:但我無法獲得將它們轉移到垂直范圍(F33?F46)的語法,它們只是水平轉移! 我錯過了什么?

With ThisWorkbook.Sheets("CSV Import").Range(GsComp)
        Sheets("Week One").Cells(33, 6).End(xlUp).Cells(46, 6).Resize(.Rows.Count, .Columns.Count) = .value

End With

但我無法獲得將它們轉移到垂直范圍(F33:F46)的語法,它們只是水平轉移!

在此處使用Application.Transpose

With ThisWorkbook.Sheets("CSV Import").Range(GsComp)
    Sheets("Week One").Range("F33").Resize(.Columns.Count).Value = Application.Transpose(.Value)
End With

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM