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會員
64內容數
ktest
留言
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
還在為Excel手機號碼顯示錯誤或價格單位符號困擾嗎?這篇文章提供三個步驟解決手機號碼科學記號問題,以及一鍵清除價格單位符號的快捷鍵技巧,並分享專業表格設計技巧,包含格式化表格、自訂樣式、條件格式化等,讓你的Excel表格更美觀易讀!
Thumbnail
🧑🏻‍🦱網友提問.... 要如何把『民國日期1131105』的日期變成『西元日期2024/11/05』,很多人心中開始OS,阿直接輸入2024/11/05就好了啊,幹嘛還要在那邊轉換,其實在很多職場中,公司買的系統,產出的資料就是這副德性..... 所以這篇教你幾個方法快速處理這
Thumbnail
🚀 揭密!Excel 專家都在用的資料整理密技!只要掌握這些技巧,讓雜亂表格立即變身為完美資料庫 省時高效的方法,從此不再為空值和合併儲存格抓狂! 特別收錄:一鍵填充技巧,讓你的工作效率翻倍!
Thumbnail
🧑🏻‍🦱網友提問.... MM/DD/YYYY其實對於台灣的EXCEL來說並不是日期,是一般的中文,所以無法拿來進行運算,或者使用日期函數進行二次處理,所以必須把格式修改成台灣EXCEL看的狀態:YYYY/MM/DD ▶️短影音教學 https://www.ins
Thumbnail
厭倦了處理雜亂無章的 Excel 資料?本篇教您一鍵轉換混亂表格為專業報表! 掌握這些技巧,從此告別繁瑣的手動整理,讓您的工作效率翻倍! 無論您是新手還是老手,都能立即上手的超實用技巧,讓您成為辦公室 Excel 達人!
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表格更美觀易讀!
Thumbnail
🧑🏻‍🦱網友提問.... 要如何把『民國日期1131105』的日期變成『西元日期2024/11/05』,很多人心中開始OS,阿直接輸入2024/11/05就好了啊,幹嘛還要在那邊轉換,其實在很多職場中,公司買的系統,產出的資料就是這副德性..... 所以這篇教你幾個方法快速處理這
Thumbnail
🚀 揭密!Excel 專家都在用的資料整理密技!只要掌握這些技巧,讓雜亂表格立即變身為完美資料庫 省時高效的方法,從此不再為空值和合併儲存格抓狂! 特別收錄:一鍵填充技巧,讓你的工作效率翻倍!
Thumbnail
🧑🏻‍🦱網友提問.... MM/DD/YYYY其實對於台灣的EXCEL來說並不是日期,是一般的中文,所以無法拿來進行運算,或者使用日期函數進行二次處理,所以必須把格式修改成台灣EXCEL看的狀態:YYYY/MM/DD ▶️短影音教學 https://www.ins
Thumbnail
厭倦了處理雜亂無章的 Excel 資料?本篇教您一鍵轉換混亂表格為專業報表! 掌握這些技巧,從此告別繁瑣的手動整理,讓您的工作效率翻倍! 無論您是新手還是老手,都能立即上手的超實用技巧,讓您成為辦公室 Excel 達人!
Thumbnail
微軟的EXCEL又出了一個新函數了【TRANSLATE】,TRANSLATE這個單字翻譯成中文就是翻譯的意思,他的功能就是"翻譯"。 有了這個函數就可以直接在原有資料進行翻譯,不用再把資料丟到Google翻譯或是GPT了。 🔎函數說明 TRANSLATE(要翻譯的內容,原始語言,翻
Thumbnail
本法省去開啟EXCEL檔,轉存為CSV檔之手動作業,縮短作業時間,提高工作效率,尤其是對象為複數個檔案場合
Thumbnail
這篇文章介紹如何使用VBA程式碼將【包含備註】的Excel檔案轉換為PDF檔。在研究這個問題時,作者花了3個小時多的時間,但後來發現了一個更簡單的方法,這讓作者感到震驚和懷疑人生。最後,作者強調使用他人的智慧來提高自己的能力。文章提供了相關參考文獻和圖片。
Thumbnail
本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
Thumbnail
在Excel中實作使用者介面(UI)是一個有趣且實用的技能,能夠幫助你更好地呈現資料、提供功能並增強使用者體驗。本文將逐步介紹如何在Excel中建立基本的UI元素,例如按鈕、下拉式選單和文字框,並擴展功能,例如資料驗證和動態更新。