簡體   English   中英

Excel VBA:Replace()輸出用作范圍變量

[英]Excel VBA : Replace() output used as range variable

我將盡力解釋這一點。 希望我在腳本中的注釋可以澄清我的雜談。 簡而言之,此腳本將在歷史生產表中快速瀏覽,將這些工作表中的選擇數據匯總為一個。 在當前代碼中,當確定要粘貼到的下一個空單元格時,我無法使Replace()輸出正常工作。 當我開始瀏覽工作簿部分時,我試圖限制所需的代碼更改量。 我希望這是有道理的。 “復制粘貼所需的代碼可以復制過去所做的有限更改。我的想法僅是更改目標列。” 我的技能有限,但我正在學習,所以請隨時就方法或設計提供建議和反饋。 目前,我很想嘗試調試columnCEL變量在范圍選擇中的工作方式。 我感謝有人可以給我的任何建設性態度。 鏈接,信息源等等,我一直在瀏覽該網站,而其他幾個小時卻發現了一些問題,但是...

    Sub parse()
Dim strPath As String
Dim columnCEL As String
Dim lastrow As Range

'open WB to consolidate too
                        Workbooks.Open "c:\prodplan\compiled\plancon.xlsx"

Set lastrow = ActiveSheet.UsedRange.End(xlDown).Offset(1, 0)


Set objexcel = CreateObject("Excel.Application")
objexcel.Visible = True
objexcel.DisplayAlerts = False
strPath = "C:\prodplan"
Set objfso = CreateObject("Scripting.FileSystemObject")
Set objFolder = objfso.GetFolder(strPath)


'Loop through objWorkBooks
For Each objfile In objFolder.Files

    If objfso.GetExtensionName(objfile.Path) = "xlsx" Then
        Set objworkbook = objexcel.Workbooks.Open(objfile.Path)

objworkbook.Worksheets("plan").Select

 'start header dates and shifts copy from objworkbook to consolidated WB
  objworkbook.Worksheets("plan").Range("b6:p7").Select


            Selection.copy
                    Workbooks("plancon.xlsx").Worksheets("data").Range("B1").Select
                    lastrow.Select
                    ActiveCell.PasteSpecial

                    'start loop for objworkbook name copy to field in plancon corisponding with date/shift and copy/past select row data.





 objworkbook.Close False

 'Move proccesed folder to new Dir

End If
'remove msgbox after debug
 MsgBox "loop stoper remove for final application"
Next

objexcel.Quit




End Sub

"destination  WB "Plancon table structure                   
Date    shift   day Total sales Inventory   Travel
source WB NAME  Thurs   Night   3429        
source WB NAME  Fri Day 2735        
source WB NAME  Fri Night   5294        
source WB NAME  Sat Day 7672        
source WB NAME  Sat Night   0       



Source structure                    
Shift:  Thurs   Fri Fri     
Shift:  Night   Day Night       
Date:   40360   40361   40361       
Total sales 3429    2735    5294        
Inventory   1750.5045   1685.854    3374.3956       
Travel                  

蒂姆,安迪感謝您的寶貴時間。 你們都是正確的,它應該是offset(1,0)。 關於打開目標工作簿時的活動單元格的Tim,我已將其設置為“ a1”,但由於不需要將代碼設置為在粘貼到指定列之前將Lastcell設置為活動狀態,因此不再需要它對每個粘貼進行硬編碼。 我試圖找到一種方法,不必在每次輸入新的粘貼列時都更改末行的名稱。 我相信安迪的建議會為我簡化事情。 在搜索其他代碼以獲取示例和理解時,我還沒有看到過userange。“我已經更新了代碼以反映建議。我還添加了源表和目標表的示例。源表包含大約78個行標簽,這些行標簽將被復制到目標位置WB格式為示例格式。在理想情況下,選擇所有轉置粘貼將使我到達那里。不幸的是,有太多垃圾並手動過濾,因為87+ WB並沒有吸引力。我將不得不循環使用比較等於復制范圍。或搜索等於源中每一行的復制范圍。關於哪種更快/更高效的任何建議?無論哪種方式,都要感謝您的幫助/是您的厚顏無恥。

看起來更多..在MS開發人員的關節中找不到搜索排名的頂部。 無論哪種方式,它都能解決。

   Dim MyColumn As String
        Dim Here As String
        Here = ActiveCell.Address
                 MyColumn = Mid(Here, InStr(Here, "$") + 1, InStr(2, Here, "$") - 2)
lastrow = ActiveWorkbook.ActiveSheet.Range(MyColumn & "65536").End(xlUp).Offset(1, 0)

暫無
暫無

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

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