主頁 > 區塊鏈 > 加速和簡化

加速和簡化

2022-09-15 17:55:09 區塊鏈

我拼湊了一些對我有用的東西,但它運行得很慢,我確信代碼可以簡化。


Sub CopyPasteValues()

Dim strSht1, strSht2 As String
Dim c, rng As Range

strSht1 = "Edit"
strSht2 = "LOB"


With ThisWorkbook.Sheets(strSht1)
Set rng = Range("J2:AJ37")

    For Each c In rng
       If Not c.Value = 0 Then
       Cells(c.Row, 2).Copy
         ThisWorkbook.Sheets(strSht2).Range("B" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteValues
       Range(Cells(c.Row, 4), Cells(c.Row, 5)).Copy
         ThisWorkbook.Sheets(strSht2).Range("C" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteValues
       c.Copy
         ThisWorkbook.Sheets(strSht2).Range("F" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteValues
       Cells(c.Column).Copy
         ThisWorkbook.Sheets(strSht2).Range("G" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteValues
        End If
     Next c
End With
End Sub

我感謝任何幫助。

uj5u.com熱心網友回復:

正如 BigBen 所提到的,陣列方法。超級快。

Sub Move_Values_Array_Method()

    Dim SourceSheet As Worksheet        'Source Worksheet
    Dim DestinationSheet As Worksheet   'Destination Worksheet
    Dim RG As Range                     'Source Range
    Dim InArr()                         'Data In Array
    Dim OutArr()                        'Data Out Array
    Dim X As Long                       'Array X Position for purposes of iterating through array.
    Dim Y As Long                       'Array Y Position for purposes of iterating through array.
    Dim Cnt As Long                     'Found Value Count
    
    Set SourceSheet = ThisWorkbook.Worksheets("Edit")       'Set Source Worksheet
    Set DestinationSheet = ThisWorkbook.Worksheets("LOB")   'Set Dest Worksheet
    Set RG = SourceSheet.Range("J2:AJ37")                   'Set Source Range
    ReDim OutArr(1 To RG.Cells.Count)                       'Count Cells in Range, resize output array to be at least that big.
    InArr = RG                                              'Transfer Range Data to Array
    Cnt = 0
    
    Debug.Print LBound(InArr, 1) & " - " & UBound(InArr, 1) 'Rows
    Debug.Print LBound(InArr, 2) & " - " & UBound(InArr, 2) 'Columns
    
    For Y = 1 To UBound(InArr, 1)           'For Each Row in Array (or each Y position)
        For X = 1 To UBound(InArr, 2)       'For Each Column in Array (or each X position)
            If InArr(Y, X) <> "" Then       'If not blank Value (you can change this to "If InArr(Y, X) <> 0 Then" if that works best for you.
                Cnt = Cnt   1               'Increment "found value count" by 1
                OutArr(Cnt) = InArr(Y, X)   'Add found value to output array
            End If
        Next X
    Next Y
    
    'Output to Dest Sheet
    DestinationSheet.Range("F2").Resize(UBound(OutArr, 1), 1).Value = Application.Transpose(OutArr())
    
End Sub

uj5u.com熱心網友回復:

根據您之前評論中的資訊,使用公式和過濾器嘗試這些替代解決方案......

1) 陣列公式

要注意:

  • 為了清楚起見,我將所有內容都放在了一張紙上,但它在多張紙甚至作業簿上也同樣適用。
  • 如果要過濾整個作業表,以相同的列順序,您只需輸入一次公式并在公式中展開“陣列”條件以封裝整個資料集。

單元格“J4”中使用的公式 =“=FILTER($I$4:$I$30,$C$4:$C$30>0)”
(過濾范圍 I4 到 I30 以顯示 C4 到 C30 范圍內的值大于的行0)

加速和簡化

2)直接過濾

或者,您可以(手動或以編程方式)將所有資料復制到 LOB 表,(或有選擇地復制),然后過濾 Qty>0。

uj5u.com熱心網友回復:

看起來不錯,但它需要遍歷多個列。如果我舉一個原始資料的例子可能會有所幫助。

加速和簡化

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/508294.html

標籤:擅长 vba

上一篇:將多個作業簿(每個作業簿與一張作業表)合并為一個作業簿與多個作業表

下一篇:返回列表

標籤雲
其他(144758) Python(37226) JavaScript(24815) Java(16400) C(14940) 區塊鏈(8236) C#(7950) AI(7469) 爪哇(7385) html(6765) MySQL(6705) 基礎類(6313) sql(6080) 熊猫(6051) PHP(5775) 数组(5729) R(5304) Linux(5174) 反应(5159) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4408) 数据框(4307) css(4245) 节点.js(4010) C語言(3288) json(3233) C++語言(3117) 列表(3116) 扑(3071) 安卓(2989) 打字稿(2944) VBA(2783) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2378) ASP.NET(2364) MongoDB(2314) 麻木的(2284) 正则表达式(2218) 字典(2211) 循环(2196) 擅长(2159) 迅速(2157) 镖(2146) 功能(1965) Web開發(1951) python-3.x(1912) 弹簧靴(1901) xml(1865) for循环(1841) 谷歌表格(1836) Unity3D(1822) PostgreSQL(1803) 網絡通信(1793) .NETCore(1787) .NET技术(1786) 蟒蛇-3.x(1774)

熱門瀏覽
  • JAVA使用 web3j 進行token轉賬

    最近新學習了下區塊鏈這方面的知識,所學不多,給大家分享下。 # 1. 關于web3j web3j是一個高度模塊化,反應性,型別安全的Java和Android庫,用于與智能合約配合并與以太坊網路上的客戶端(節點)集成。 # 2. 準備作業 jdk版本1.8 引入maven <dependency> < ......

    uj5u.com 2020-09-10 03:03:06 more
  • 以太坊智能合約開發框架Truffle

    前言 部署智能合約有多種方式,命令列的瀏覽器的渠道都有,但往往跟我們程式員的風格不太相符,因為我們習慣了在IDE里寫了代碼然后打包運行看效果。 雖然現在IDE中已經存在了Solidity插件,可以撰寫智能合約,但是部署智能合約卻要另走他路,沒辦法進行一個快捷的部署與測驗。 如果團隊管理的區塊節點多、 ......

    uj5u.com 2020-09-10 03:03:12 more
  • 谷歌二次驗證碼成為區塊鏈專用安全碼,你怎么看?

    前言 谷歌身份驗證器,前些年大家都比較陌生,但隨著國內互聯網安全的加強,它越來越多地出現在大家的視野中。 比較廣泛接觸的人群是國際3A游戲愛好者,游戲盜號現象嚴重+國外賬號安全應用廣泛,這類游戲一般都會要求用戶系結名為“兩步驗證”、“雙重驗證”等,平臺一般都推薦用谷歌身份驗證器。 后來區塊鏈業務風靡 ......

    uj5u.com 2020-09-10 03:03:17 more
  • 密碼學DAY1

    目錄 ##1.1 密碼學基本概念 密碼在我們的生活中有著重要的作用,那么密碼究竟來自何方,為何會產生呢? 密碼學是網路安全、資訊安全、區塊鏈等產品的基礎,常見的非對稱加密、對稱加密、散列函式等,都屬于密碼學范疇。 密碼學有數千年的歷史,從最開始的替換法到如今的非對稱加密演算法,經歷了古典密碼學,近代密 ......

    uj5u.com 2020-09-10 03:03:50 more
  • 密碼學DAY1_02

    目錄 ##1.1 ASCII編碼 ASCII(American Standard Code for Information Interchange,美國資訊交換標準代碼)是基于拉丁字母的一套電腦編碼系統,主要用于顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,并等同于國際標準ISO/IE ......

    uj5u.com 2020-09-10 03:04:50 more
  • 密碼學DAY2

    ##1.1 加密模式 加密模式:https://docs.oracle.com/javase/8/docs/api/javax/crypto/Cipher.html ECB ECB : Electronic codebook, 電子密碼本. 需要加密的訊息按照塊密碼的塊大小被分為數個塊,并對每個塊進 ......

    uj5u.com 2020-09-10 03:05:42 more
  • NTP時鐘服務器的特點(京準電子)

    NTP時鐘服務器的特點(京準電子) NTP時鐘服務器的特點(京準電子) 京準電子官V——ahjzsz 首先對時間同步進行了背景介紹,然后討論了不同的時間同步網路技術,最后指出了建立全球或區域時間同步網存在的問題。 一、概 述 在通信領域,“同步”概念是指頻率的同步,即網路各個節點的時鐘頻率和相位同步 ......

    uj5u.com 2020-09-10 03:05:47 more
  • 標準化考場時鐘同步系統推進智能化校園建設

    標準化考場時鐘同步系統推進智能化校園建設 標準化考場時鐘同步系統推進智能化校園建設 安徽京準電子科技官微——ahjzsz 一、背景概述隨著教育事業的快速發展,學校建設如雨后春筍,隨之而來的學校教育、管理、安全方面的問題成了學校管理人員面臨的最大的挑戰,這些問題同時也是學生家長所擔心的。為了讓學生有更 ......

    uj5u.com 2020-09-10 03:05:51 more
  • 位元幣入門

    引言 位元幣基本結構 位元幣基礎知識 1)哈希演算法 2)非對稱加密技術 3)數字簽名 4)MerkleTree 5)哪有位元幣,有的是UTXO 6)位元幣挖礦與共識 7)區塊驗證(共識) 總結 引言 上一篇我們已經知道了什么是區塊鏈,此篇說一下區塊鏈的第一個應用——位元幣。其實先有位元幣,后有的區塊 ......

    uj5u.com 2020-09-10 03:06:15 more
  • 北斗對時服務器(北斗對時設備)電力系統應用

    北斗對時服務器(北斗對時設備)電力系統應用 北斗對時服務器(北斗對時設備)電力系統應用 京準電子科技官微(ahjzsz) 中國北斗衛星導航系統(英文名稱:BeiDou Navigation Satellite System,簡稱BDS),因為是目前世界范圍內唯一可以大面積提供免費定位服務的系統,所以 ......

    uj5u.com 2020-09-10 03:06:20 more
最新发布
  • 加速和簡化

    我拼湊了一些對我有用的東西,但它運行得很慢,我確信代碼可以簡化。Sub CopyPasteValues()Dim strSht1, strSht2 As StringDim c, rng As RangestrSht1 = "Edi...

    uj5u.com 2022-09-15 17:55:09 more
  • 將多個作業簿(每個作業簿與一張作業表)合并為一個作業簿與多個作業

    我是 VBA 新手,我正在嘗試執行以下操作:我有多個 CSV 檔案,每個檔案都有一個作業表,作業簿以特定名稱保存。所有作業簿的格式都相同。我想撰寫一個 VBA 代碼,它...

    uj5u.com 2022-09-15 17:53:59 more
  • Visio資料記錄集物件

    我在 2010 標準中搞亂了一些 Visio VBA。我嘗試使用記錄集物件的任何方法或屬性都會出錯。Public Sub LinkAllRecordsets()Dim drs As Visio.DataRecordset...

    uj5u.com 2022-09-15 17:53:22 more
  • 合并行和總和值( 洗掉合并的)

    自 48 小時以來,我已經對此進行了查找和測驗,但找不到正確的解決方案(或正確調整現有解決方案)。附件是我的 Excel 截圖。基本上,我想說(在函式或 VBA 腳本中):當“...

    uj5u.com 2022-09-15 17:51:29 more
  • 在單擊“下一步”時到達該作業表的最后一個單元格后,用于回圈通過

    我有一個 vba 程式,可以向我正在開發的用戶發出考試/測驗。我創建了用戶表單來遍歷作業表資料庫中的問題,以下是用戶表單的代碼。它回圈遍歷問題,并在我創建的...

    uj5u.com 2022-09-15 17:50:53 more
  • ExcelVBA-接收編譯錯誤:預期:#

    我想在我的作業簿中的大多數作業表中設定一列的列寬。代碼如下所示:Sub width()Dim ws As WorksheetFor Each ws In ActiveWorkbook.WorksheetsIf ws.Name =...

    uj5u.com 2022-09-15 17:49:59 more
  • 列范圍輸入為數字,因此可以更改

    我有 25 個帶有餅圖的電子表格。我需要遍歷電子表格并更改餅圖從何處獲取資訊。但我無法讓代碼作業。我來自這個:Sub ChangePieValues()Dim sheetno As Inte...

    uj5u.com 2022-09-15 17:49:22 more
  • 從VBA中的Array中獲取值的反向索引

    我有一個整數陣列。Dim a as Varianta = Array(1,2,3,4,1,2,3,4,5)Dim index as Integerindex = Application.Match(4,a,0) '3這里的索引是 3。它回傳第一...

    uj5u.com 2022-09-15 17:48:35 more
  • 標記列中的單元格的選項,以便它可以用于復制某些行資料

    我一直在尋找將按鈕添加到列中,以便可以將特定的資料行添加到另一張表中。似乎您無法向單元格添加按鈕,因此我通過格式化使列單元格看起來像按鈕,然后添加了單...

    uj5u.com 2022-09-15 17:47:30 more
  • 串列框中的VBA不區分大小寫排序

    我有下面的代碼,用于洗掉重復項并將值按字母順序排序到用戶表單中的串列框中,但它優先考慮大寫字母而不是字母,我希望它忽略文本的大小寫 Dim Coll As Coll...

    uj5u.com 2022-09-15 17:42:43 more