![](/img/trans.png)
[英]Excel VBA - Using Long Variables inside Range function while filtering
[英]Excel VBA Using String Variables inside a Range selection for Colum AND Row values
上周這一直讓我感到沮喪,所以我崩潰並尋求幫助。 我已經徹底搜索了這個並沒有能夠破解它......希望有人能救我!
我需要將范圍選擇從一個工作表復制到另一個工作表,這應該是一項簡單的任務,但是范圍是基於動態的。查找結果...我能夠將所有必需的數據傳遞給變量,但獲取那些字符串變量沒有問題(列和行值)到要復制的范圍不斷給我“運行時錯誤1004:范圍class的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.