excel xyz轉mesh (kurt)

閱讀時間約 7 分鐘

這段程式碼假設您的XYZ資料存儲在名為"Sheet1"的工作表中的A1:Cn範圍內,其中n是資料行的數量。它將資料提取出來,然後在新建的工作表中按照網格的形式重新排列。請注意,這種方法可能會丟失某些資料點,具體取決於原始XYZ資料的分佈方式。

Option Explicit

Sub XYZToMesh()
Dim wsSource As Worksheet
Dim wsTarget As Worksheet
Dim sourceRange As Range
Dim targetRange As Range
Dim xValues As Variant
Dim yValues As Variant
Dim zValues As Variant
Dim i As Long, j As Long

' 假設XYZ資料儲存在Sheet1的A1:Cn範圍內
Set wsSource = ThisWorkbook.Sheets("Sheet1")
Set sourceRange = wsSource.Range("A1").CurrentRegion
xValues = sourceRange.Columns(1).Value
yValues = sourceRange.Columns(2).Value
zValues = sourceRange.Columns(3).Value

' 新建一個工作表來儲存網格數據
Set wsTarget = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
Set targetRange = wsTarget.Range("A1")

' 將XYZ資料轉換為網格形式
For i = LBound(xValues) To UBound(xValues)
For j = LBound(yValues) To UBound(yValues)
targetRange.Offset(i, 0).Value = xValues(i, 1)
targetRange.Offset(i, 1).Value = yValues(j, 1)
targetRange.Offset(i, 2).Value = zValues(i, 1) ' 假設zValues的維度與x、y相同
Set targetRange = targetRange.Offset(1, 0)
Next j
Set targetRange = targetRange.Offset(0, 1 - UBound(yValues) + LBound(yValues))
Next i

MsgBox "XYZ資料已成功轉換為網格形式並輸出到新的工作表。"
End Sub


要將上述VBA功能添加到Excel中,請按照以下步驟進行操作:

打開Excel並打開您想要添加功能的工作簿。

按下ALT + F11鍵,這將打開Visual Basic for Applications (VBA)編輯器。

在VBA編輯器中,點擊菜單中的"插入",然後選擇"模塊"。這將在"模塊"文件夾中創建一個新的模塊。

在新創建的模塊中,複製並粘貼上面提供的VBA代碼。

關閉VBA編輯器,返回Excel。

現在,您可以將功能分配給按鈕。要添加一個按鈕,請按照以下步驟操作:

在Excel工具欄中,找到"開發人員"選項卡。如果您找不到"開發人員"選項卡,請進入Excel的選項,啟用"開發人員"選項卡。

在"開發人員"選項卡中,點擊"插入",然後在"ActiveX 控制項"下選擇"按鈕"。接下來,在工作表上繪製一個按鈕。

點擊新繪製的按鈕,然後右鍵單擊它,選擇"屬性"。在屬性窗格中,為按鈕指定一個有意義的名稱(例如"RunXYZToMesh")。

雙擊按鈕,這將打開VBA編輯器並將焦點放在新按鈕的點擊事件上。在該事件中,您可以調用上面添加的VBA代碼。

將代碼中的工作表名稱和範圍引用根據您的實際Excel文件進行修改。

完成後,關閉VBA編輯器並返回到Excel。現在,您可以按下按鈕,觸發VBA功能,將XYZ數據轉換為XYZ網格。

==========

import os
from PyQt5.QtWidgets import QApplication, QMainWindow, QListWidget, QVBoxLayout, QWidget

class FileListWindow(QMainWindow):
def __init__(self):
super().__init__()

self.setWindowTitle("文件列表")
self.setGeometry(100, 100, 300, 200)

layout = QVBoxLayout()

# 創建可以複選的列表
self.file_listwidget = QListWidget()

# 讀取指定文件夾的文件列表
folder_path = "指定文件夾路径"
files = os.listdir(folder_path)

# 將文件列表添加到可複選的列表中
self.file_listwidget.addItems(files)

# 將點擊事件與處理函數關聯
self.file_listwidget.itemClicked.connect(self.item_clicked)

layout.addWidget(self.file_listwidget)

central_widget = QWidget()
central_widget.setLayout(layout)
self.setCentralWidget(central_widget)

def item_clicked(self, item):
# 獲取所選項目的文本
selected_item_text = item.text()
print("選擇的項目:", selected_item_text)

if __name__ == "__main__":
app = QApplication([])
window = FileListWindow()
window.show()
app.exec_()



    avatar-img
    6會員
    63內容數
    ktest
    留言0
    查看全部
    avatar-img
    發表第一個留言支持創作者!
    hls Ding的沙龍 的其他內容
    Vertexes和linedefs是構成doom關卡地圖的主要參數,在WAD的每個地圖區塊都會存放屬於該地圖的vertexes和linedefs。
    Reject是附屬在map data裡面的一個表格,用來設定放在某個sector的怪物的視線有機會看到哪幾個sector的玩家。觸發使用查表的條件尚待確認。
    blockmap是附屬在map data裡面的一個資料結構,說明blockmap的結構
    兩種在windows系統用win32 api關閉輸入法的作法
    在樹莓派安裝OpenCV的紀錄。板子是樹莓派3B(沒有+),系統raspbian bullseye 32bit灌到USB隨身碟。
    Vertexes和linedefs是構成doom關卡地圖的主要參數,在WAD的每個地圖區塊都會存放屬於該地圖的vertexes和linedefs。
    Reject是附屬在map data裡面的一個表格,用來設定放在某個sector的怪物的視線有機會看到哪幾個sector的玩家。觸發使用查表的條件尚待確認。
    blockmap是附屬在map data裡面的一個資料結構,說明blockmap的結構
    兩種在windows系統用win32 api關閉輸入法的作法
    在樹莓派安裝OpenCV的紀錄。板子是樹莓派3B(沒有+),系統raspbian bullseye 32bit灌到USB隨身碟。
    你可能也想看
    Google News 追蹤
    Thumbnail
    嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
    Thumbnail
    微軟的EXCEL又出了一個新函數了【TRANSLATE】,TRANSLATE這個單字翻譯成中文就是翻譯的意思,他的功能就是"翻譯"。 有了這個函數就可以直接在原有資料進行翻譯,不用再把資料丟到Google翻譯或是GPT了。 🔎函數說明 TRANSLATE(要翻譯的內容,原始語言,翻
    Thumbnail
    本法省去開啟EXCEL檔,轉存為CSV檔之手動作業,縮短作業時間,提高工作效率,尤其是對象為複數個檔案場合
    Thumbnail
    這篇文章介紹如何使用VBA程式碼將【包含備註】的Excel檔案轉換為PDF檔。在研究這個問題時,作者花了3個小時多的時間,但後來發現了一個更簡單的方法,這讓作者感到震驚和懷疑人生。最後,作者強調使用他人的智慧來提高自己的能力。文章提供了相關參考文獻和圖片。
    Thumbnail
    本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
    Thumbnail
    在Excel中實作使用者介面(UI)是一個有趣且實用的技能,能夠幫助你更好地呈現資料、提供功能並增強使用者體驗。本文將逐步介紹如何在Excel中建立基本的UI元素,例如按鈕、下拉式選單和文字框,並擴展功能,例如資料驗證和動態更新。
    Thumbnail
    排序是EXCEL很常用很基礎的一個功能,他可以幫我們把資料依照指定的順序排列。 但通常我們使用都是以欄(直)的方向進行排序,其實EXCEL也可以依據列(橫)的方向進行排續哦😁 下圖是LINE社群網友提出的問題,想要把上圖的原始資料變成下圖。(相關問題可以加入LINE社群唷) 這時候用排序(尋
    Thumbnail
    設計完一覽表之後,如果會寫程式的人可以每天用這種方法去抓資料放到Excel. 那不會寫程式的人呢? 這裡教你一個稍微要花點時間的輸出Excel的方法。 在上禮拜完成的自選裡。   一、  你先依下圖,在“功能”中找到”輸出到Excel”,按下報價精靈 二、  選擇全部加入,按下全部加
    Thumbnail
    如何運用函數來讓資料產生空白列,而且當輸入多少數字,就會插入多少空白列。 <插入空白列> E5=TOCOL(EXPAND(B5:B9,,C3+1,"")) 📝函數說明 ✍🏾EXPAND陣列擴展函數 函數說明=EXPAND(範圍,展開的列,展開的欄,要展開的內容)
    Thumbnail
    在職場上,我們經常需要使用 Excel 表格來處理資料,而自動格式設定可以幫助我們快速將資料整理成一致的格式,讓資料看起來更清晰、更有效率。用 Excel 的快捷鍵自動出現自動格式設定技巧,可以讓我們在更短的時間內套用自動格式,讓工作更輕鬆。
    Thumbnail
    嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
    Thumbnail
    微軟的EXCEL又出了一個新函數了【TRANSLATE】,TRANSLATE這個單字翻譯成中文就是翻譯的意思,他的功能就是"翻譯"。 有了這個函數就可以直接在原有資料進行翻譯,不用再把資料丟到Google翻譯或是GPT了。 🔎函數說明 TRANSLATE(要翻譯的內容,原始語言,翻
    Thumbnail
    本法省去開啟EXCEL檔,轉存為CSV檔之手動作業,縮短作業時間,提高工作效率,尤其是對象為複數個檔案場合
    Thumbnail
    這篇文章介紹如何使用VBA程式碼將【包含備註】的Excel檔案轉換為PDF檔。在研究這個問題時,作者花了3個小時多的時間,但後來發現了一個更簡單的方法,這讓作者感到震驚和懷疑人生。最後,作者強調使用他人的智慧來提高自己的能力。文章提供了相關參考文獻和圖片。
    Thumbnail
    本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
    Thumbnail
    在Excel中實作使用者介面(UI)是一個有趣且實用的技能,能夠幫助你更好地呈現資料、提供功能並增強使用者體驗。本文將逐步介紹如何在Excel中建立基本的UI元素,例如按鈕、下拉式選單和文字框,並擴展功能,例如資料驗證和動態更新。
    Thumbnail
    排序是EXCEL很常用很基礎的一個功能,他可以幫我們把資料依照指定的順序排列。 但通常我們使用都是以欄(直)的方向進行排序,其實EXCEL也可以依據列(橫)的方向進行排續哦😁 下圖是LINE社群網友提出的問題,想要把上圖的原始資料變成下圖。(相關問題可以加入LINE社群唷) 這時候用排序(尋
    Thumbnail
    設計完一覽表之後,如果會寫程式的人可以每天用這種方法去抓資料放到Excel. 那不會寫程式的人呢? 這裡教你一個稍微要花點時間的輸出Excel的方法。 在上禮拜完成的自選裡。   一、  你先依下圖,在“功能”中找到”輸出到Excel”,按下報價精靈 二、  選擇全部加入,按下全部加
    Thumbnail
    如何運用函數來讓資料產生空白列,而且當輸入多少數字,就會插入多少空白列。 <插入空白列> E5=TOCOL(EXPAND(B5:B9,,C3+1,"")) 📝函數說明 ✍🏾EXPAND陣列擴展函數 函數說明=EXPAND(範圍,展開的列,展開的欄,要展開的內容)
    Thumbnail
    在職場上,我們經常需要使用 Excel 表格來處理資料,而自動格式設定可以幫助我們快速將資料整理成一致的格式,讓資料看起來更清晰、更有效率。用 Excel 的快捷鍵自動出現自動格式設定技巧,可以讓我們在更短的時間內套用自動格式,讓工作更輕鬆。