VBA不服Excel分列功能系列(1),VBA能同時多列拆分

2020-12-25 vba雜談

VBA早間檔

VBA早間檔,利用簡單的幾分鐘,學習一些簡單的VBA知識,提升工作效率

今日主題

今天我們繼續昨天的話題,VBA中split方法能夠實現Excel自帶的分列功能效果,不過有很多小夥伴也不是很滿足,既然能夠用Excel自帶的分列功能來實現我的需求,我為什麼還需要學習VBA,代碼那麼多!那麼VBA僅僅是能夠複製Excel的分列功能嘛?VBA表示不服氣了,並且表示他們做的更多,那麼來看看他還能實現哪些分列功能不能實現的效果呢?

案例展示和解析

這是我們昨天的案例,昨天我們成功的複製了Excel自帶的分列功能,實現了對單列數據按照指定分隔符的拆分,既然VBA表示自己更加強大,那麼我們來實現一些分列功能不能實現的效果,我們今天來針對多列數據進行拆分

這裡我們準備了兩列數據,我們來實現利用VBA一次性將這兩節數據進行拆分的效果,如果用Excel的分類功能,可能需要至少兩次才能夠實現,VBA只需要一次就可以了

代碼區

Sub sss()

Dim rng As Range, rngt As Range, a As Range, arr

Set rng = Application.InputBox("請選擇拆分單元格", , , , , , , 8)

Set trng = Application.InputBox("請選擇結果填充位置首單元格", , , , , , , 8)

k = 0

For Each a In rng

If a <> "" Then

arr = Split(a, "-")

If k <> 0 Then

trng.Offset(k, 0).Resize(1, UBound(arr) + 1) = arr

Else

trng.Resize(1, UBound(arr) + 1) = arr

End If

k = k + 1

End If

Next a

End Sub

依然是非常的簡單,來看下最終的效果。

成功的將這兩列數據,一次性的全部拆分出來了。

代碼解析

這裡我們只需要遍歷我們所選擇的多列的數據區域,然後循環進行拆分就可以了。

其實今天的方法也是非常的簡單,我們知道利用split方法得到的是一個數組

arr = Split(a, "-")

現在我們只需要找到一個位置將這個結果放置就可以了,那麼如何找到位置呢?

inputbox窗體直接選擇首單元格,然後就可以不斷的向下循環填充數據,最終得到我們想要的結果。

有小夥伴們說講的東西有點簡單,早間檔主要是分享一些簡單的基礎知識的,畢竟這個時候大家都還在犯困或者擠車的過程中,學習點輕鬆的基礎知識比較合適,不管是多麼強大的代碼都離是這些小小的基礎知識一點點的累計起來的,如果你都會了,那麼恭喜你,可以直接跳到更加有難度的實例部分了,晚間19點擋,我已經分享了很多工作中的實例代碼,如果你有更好的代碼歡迎一起交流,一起學習~~

相關焦點

  • excel VBA是什麼?VBA編程入門教程
    本篇將介紹excel vba是什麼?vba編程入門教程,有興趣的朋友可以了解一下!一、excel vba是什麼?VBA的英文全稱是Visual Basic for Applications,是一門標準的宏語言。VBA語言不能單獨運行,只能被office軟體(如:Word、Excel等)所調用。
  • 「Python替代Excel Vba」系列(終):vba中調用Python
    如下圖:數據大致表示每個部門每個月的銷售情況Units Sold 列是銷售額本文所用到的 pandas 技巧都在之前的章節已有詳細介紹,因此本文只對重點細節做講解而上述命令行只是把這個 xlam 文件放入你的 excel 加載項目錄中而已。然後,在你的任意目錄中打開命令行。執行以下語句,即會生成一個 py 文件和一個 帶宏的 excel 文件。
  • 「Python替代Excel Vba」系列(二):pandas分組統計與操作Excel
    帶你用pandas玩轉各種數據處理前言在本系列的上一章已經介紹了如何讀寫 excel 數據,並快速進行匯總處理。但有些小夥伴看完之後有些疑惑:那只是簡單讀寫數據而已,有時候需要設置 excel 的格式。
  • Excel分列功能很強大,拆分文本全靠它!VBA不服氣!我也能!
    ------分列分列在我們的工作中確實有很大的用處,不過在VBA代碼中是沒有辦法直接使用這個分列的方法的,那麼在VBA中如何實現這個分列的方法呢?Set rng = Application.InputBox("請選擇拆分區域", "拆分區域的確定", , , , , , 8)For Each a In rngarr = Split(a, "-")a.Offset(0, 1).Resize
  • 收藏 | 37個Excel vba實例匯總(附贈VBA教程)
    這裡把這些實例再分類整理一下,方便以後的查詢和使用,大致分類如下:單元格操作實例(1)- 批量製作工資表頭實例(5)- 快速合併n多個相同值的單元格實例(9)- 批量插入、刪除表格中的空行實例(11)- 拆分單元格並自動填充實例(12)- 如何合併多個單元格而不丟失單元格的數據?
  • Excel vba 利用定義名稱實現用戶登錄功能
    文/江覓易見在vba 中實現用戶登錄,並對登錄用戶進行身份識別,然後對用戶進行分組管理,此類功能值得進一步思考。這裡介紹一種方法,利用Excel中的名稱管理來進行身份識別,起到用戶登錄次數以及增減用戶的功能。
  • 拆分工作簿增強(按任意列拆分)
    後臺也有小夥伴留言問怎麼實現按其他任意列拆分工作簿。其實這很簡單,只需要稍微修改其他變量即可。nbsp;  Set dic = CreateObject("scripting.dictionary")    With ThisWorkbook.Worksheets("匯總表")        cln = InputBox("請輸入需要按列拆分的列
  • vba第十八課
    vba第十八課調用工作表函數在vba中我經常會對工作表的數據進行一些運算,雖然通過代碼進行循環或判斷也可以完成,但是通vba調用函數可以更簡單更直接進行運算提高代碼的運行效率,比如countif、sumif等需要進行判斷統計和求和的運算。
  • Excel VBA從新手到高手系列課程
    五、 教學目錄:第一章 新手篇-走進excel vba的世界      1.1 什麼是VBA      1.2 EXCEL中的宏      1.3 認識VISUAL BASIC編輯器        1.4 vba程序結構      1.5 數據類型         1.6
  • vba第二十四課
    vba第二十四課工作表拆分工作表拆分是指把工作薄內的單個或多個工作表獨立成一個工作薄,此功能還是比較實用的。例:Sub 工作表拆分()Dim wk As Workbook, a!, b$Application.DisplayAlerts = FalseFor a = 1 To Sheets.Count mypath = ThisWorkbook.Path b = mypath & "\" & Sheets(a).Name Set wk = Workbooks.Add Workbooks
  • WPS教程:excel新手入門VBA功能使用介紹
    Excel教學:今天和大家分享一下excel中vba的使用方法入門,相信很多使用該軟體的朋友們對此都很感興趣,下面就和大家來分享一下,希望可以幫助到大家。工具/原料電腦:組裝臺式機系統:windows 10專業版版本:WPS Office 2019 PC版方法/步驟1.首先,我要知道商品的單價是12.5,在D1單元格輸入【商品單價】,在D2單元格輸入12.52.接著我們打開vb界面,在常用工具欄上執行:開發工具--visual basic。
  • Excel單元格一列如何拆分兩列?分列功能強大
    在網上拷貝資料的時候,複製過來的信息不是很規範,很多數據都在一個單元格中,如何拆分單元格,使其規範的顯示在單元格中呢?今天給大家分享使用分列功能,支持不規範單元格拆分。1、按空格拆分列根據表格的例子所示,兩個名字使用空格連接顯示在一個單元格上,如何將其拆分成兩個單元格呢?操作方法:點擊數據-分列-下一步-選擇空格,然後選擇拆分放置的單元格,點擊完成即可。
  • excel如此簡單高效的分列功能,你以為只能拆分單元格嗎?
    在excel操作中,分列是一個非常好用的功能,因為它可以實現對一列的數據進行批量操作,比如拆分、格式轉換等,而且操作十分簡單。今天就和小編一起來看看分列的那些用法吧一:分列的基本功能介紹第1步:在excel的【數據】選項卡中可以找到分列的功能,然後滑鼠點擊【分列】就可以打開文本分列嚮導,文本分列嚮導總共分為3步操作,下圖是第1步操作的界面
  • vba字典功能介紹,Excel辦公效率就這麼高
    vba字典功能十分有用,如果對其它編程有一定了解,那麼對於字典也不陌生,它代表著高效和強大的數據處理功能。字典功能介紹那麼如何在vba中運用字典功能?+ 1 '隨機取值 nX = VBA.Split(Dicobj.Item(Range("A" & n).Value), " ") Cx = VBA.RGB(nX(0), nX(1), nX(2)) '顏色值 MsgBox "鍵名:" & Dicobj.Keys()(n) & VBA.vbCrLf & "鍵值:" & Dicobj.items
  • VBA學習筆記 1-1
    = "穆澤"    ActiveCell.Offset(1, 0).Range("A1").Select  End Sub測試顯示:當前滑鼠位置輸入名字excel 宏文件兩種錄製模式:絕對引用 相對引用絕對引用類似:$
  • 合併/拆分 Excel?Python、VBA輕鬆自動化
    = 0: # 若存在EXCEL表則合併保存 result = pd.concat(frames) # 上下連接多個df result.to_excel(d+"合併結果表.xlsx")merge_excel("D:/某文件夾")
  • Excel|VBA拆分單元格內容
    最近遇到一個小需求,如何將Excel單元格中的內容拆分到多行?下圖中左邊是原始數據,每位員工需要上班的日期,合併在一個單元格內,日期之間間隔一個空白符;現在需要拆分成表右邊所示的樣子,即將員工需要上班的日期拆分成一行行數據;傳統的方法可以直接對班期列進行分列操作,再將分列所得數據一行行複製轉置粘貼,步驟繁瑣麻煩,這裡用VBA處理,寫好代碼,一秒鐘搞定,一勞永逸
  • Excel vba 實例(6) - 一鍵匯總多個sheet數據到總表
    先上代碼Sub collect()    Dim sht As Worksheet, rng As Range, k&, trow&    Application.ScreenUpdating = False    trow = Val(InputBox("請輸入標題的行數", "提醒"))    If
  • VBA代碼大全010:用vba遍歷文件夾及其子文件夾內的文件
    vba老手都知道,vba寫多了,其實都是在做循環。循環處理多個單元格的內容,循環處理多個工作表的內容,循環處理多個工作簿的內容。
  • VBA編程理論學習之談
    No.1 掌握對象方法和屬性VBA編程是一個即學即用的過程,幾乎不可能全面掌握所有對象的代碼,也不可能記住所有的對象屬性。No.2 功能完善整個9月總共做了38個文件,每一個都是實例操作。有些是解決基本應用需求,也有一些是Excel vba基礎的對象以及屬性功能介紹。總的來說,這個月有一些進展,也有一些心得和知識積累。