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會員
    59內容數
    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
    Hi 我是 VK~ 在 8 月底寫完〈探索 AI 時代的知識革命:NotebookLM 如何顛覆學習和創作流程?〉後,有機會在 INSIDE POSSIBE 分享兩次「和 NotebookLM 協作如何改變我學習和創作」的主題,剛好最近也有在許多地方聊到關於 NotebookLM 等 AI 工具
    Thumbnail
    國泰CUBE App 整合外幣換匯、基金、證券等服務,提供簡便、低成本的美股定期定額投資解決方案。 5分鐘開戶、低投資門檻,幫助新手輕鬆進軍國際股市;提供人氣排行榜,讓投資人能夠掌握市場趨勢。
    Thumbnail
    這是張老師的第三本書,我想前二本應該也有很多朋友們都有讀過,我想絕對是受益良多,而這次在書名上就直接點出,著重在從投資的角度來切入
    Thumbnail
    這篇文章介紹如何使用Excel整理期貨交易所資料並追蹤期貨三大法人籌碼數據。文章涵蓋了期貨三大法人的用途、期貨交易所網站資料認識、運用Excel VBA爬取交易所資料以及資料彙整與半自動輔助更新。這些學習將幫助您深入進行期貨交易分析並制定更加細緻的交易策略。
    Thumbnail
    無論是企業、小商家或是個人,都可能會用到 Excel 來處理資料。在使用 Excel 時,我們常常需要將多行數據快速轉換為其他格式,例如,將多行數據合併為一行、將多行數據拆分為多列,或將多行數據轉換為其他類型資料。 傳統上,我們可以使用複製、貼上、合併儲存格等方法來完成這些操作。但是,這些方法不僅
    Thumbnail
    在臺灣,有部分企業會使用民國日期,因此如何在 Excel 中轉換民國和西元日期就顯得非常重要。 除了日期轉換之外,計算年紀、星期、生肖、星座也是常見的日期處理需求。這些需求看似簡單,但如果沒有 Excel 的幫助,可能會花費不少時間和精力。
    Thumbnail
    這篇是日期轉換的第2篇,第一篇傳送門:EXCEL 民國日期轉西元日期 日期轉換大全#1 民國日期是台灣很長用的日期表達方式,但EXCEL並不是台灣人發明的,所以EXCEL並看不懂民國日期,這時如果遇到西元日期,但老闆卻堅持要用民國顯示的話,就得靠一些小手段了。 EXCEL中華民國曆 EXC
    Thumbnail
    工作上許多人會遇到需要將日期由民國年轉換成西元日期,使用民國年輸入日期其實EXCEL是完全看不懂的唷,他會變成文字格式而非日期格式,導致所有的日期函數都無法使用😭 所以就須要使用函數來將這些日期轉變成西元日期,這樣EXCEL才看得懂,才可使用各種函數來進行分析,這集總共有五種常見的民國年的格式案
    Thumbnail
    語法 UPPER(text):將英文轉換成「大寫」 LOWER(text):將英文轉換成「小寫」 PROPER(text):將英文轉換成「首字母大寫」 輸入語法後,點選需變動的儲存格即可。
    Thumbnail
    EXCEL應該是最多朋友會使用的工具,因為如果能善用EXCEL來分析手邊的股價資訊,必然能有極大的幫助。 雖然說現在市面上有非常多既有的既定工具,但資料在自己手上,分析方法由自己決定,長期來說還是比較好。 今天來講一個簡單的敘述統計...
    Thumbnail
    首先我要介紹的這個案例式我前天剛拿到的,熱騰騰的端午節玩家儲值活動優惠贈送 (內容數字已做調整,與原先不同,此只為一起研究Excel)
    Thumbnail
    對於很多人來說Excel只是一般『紀錄』工具,他能夠呈現了報表、銷售量...等數字,但其實他所能帶給你的不僅僅是『紀錄』。 其實我是一個很懶的人,對於我來說,事情我就是想要把它做到最簡化,能夠讓我省下大把的時間來偷閒摸魚最好,而公司又沒有買些什麼系統可以用時,Excel就是讓我達成這目標的最偉大功臣
    Thumbnail
    黑豬王子”說不定都以為自己是”白馬騎士” ......
    Thumbnail
    Hi 我是 VK~ 在 8 月底寫完〈探索 AI 時代的知識革命:NotebookLM 如何顛覆學習和創作流程?〉後,有機會在 INSIDE POSSIBE 分享兩次「和 NotebookLM 協作如何改變我學習和創作」的主題,剛好最近也有在許多地方聊到關於 NotebookLM 等 AI 工具
    Thumbnail
    國泰CUBE App 整合外幣換匯、基金、證券等服務,提供簡便、低成本的美股定期定額投資解決方案。 5分鐘開戶、低投資門檻,幫助新手輕鬆進軍國際股市;提供人氣排行榜,讓投資人能夠掌握市場趨勢。
    Thumbnail
    這是張老師的第三本書,我想前二本應該也有很多朋友們都有讀過,我想絕對是受益良多,而這次在書名上就直接點出,著重在從投資的角度來切入
    Thumbnail
    這篇文章介紹如何使用Excel整理期貨交易所資料並追蹤期貨三大法人籌碼數據。文章涵蓋了期貨三大法人的用途、期貨交易所網站資料認識、運用Excel VBA爬取交易所資料以及資料彙整與半自動輔助更新。這些學習將幫助您深入進行期貨交易分析並制定更加細緻的交易策略。
    Thumbnail
    無論是企業、小商家或是個人,都可能會用到 Excel 來處理資料。在使用 Excel 時,我們常常需要將多行數據快速轉換為其他格式,例如,將多行數據合併為一行、將多行數據拆分為多列,或將多行數據轉換為其他類型資料。 傳統上,我們可以使用複製、貼上、合併儲存格等方法來完成這些操作。但是,這些方法不僅
    Thumbnail
    在臺灣,有部分企業會使用民國日期,因此如何在 Excel 中轉換民國和西元日期就顯得非常重要。 除了日期轉換之外,計算年紀、星期、生肖、星座也是常見的日期處理需求。這些需求看似簡單,但如果沒有 Excel 的幫助,可能會花費不少時間和精力。
    Thumbnail
    這篇是日期轉換的第2篇,第一篇傳送門:EXCEL 民國日期轉西元日期 日期轉換大全#1 民國日期是台灣很長用的日期表達方式,但EXCEL並不是台灣人發明的,所以EXCEL並看不懂民國日期,這時如果遇到西元日期,但老闆卻堅持要用民國顯示的話,就得靠一些小手段了。 EXCEL中華民國曆 EXC
    Thumbnail
    工作上許多人會遇到需要將日期由民國年轉換成西元日期,使用民國年輸入日期其實EXCEL是完全看不懂的唷,他會變成文字格式而非日期格式,導致所有的日期函數都無法使用😭 所以就須要使用函數來將這些日期轉變成西元日期,這樣EXCEL才看得懂,才可使用各種函數來進行分析,這集總共有五種常見的民國年的格式案
    Thumbnail
    語法 UPPER(text):將英文轉換成「大寫」 LOWER(text):將英文轉換成「小寫」 PROPER(text):將英文轉換成「首字母大寫」 輸入語法後,點選需變動的儲存格即可。
    Thumbnail
    EXCEL應該是最多朋友會使用的工具,因為如果能善用EXCEL來分析手邊的股價資訊,必然能有極大的幫助。 雖然說現在市面上有非常多既有的既定工具,但資料在自己手上,分析方法由自己決定,長期來說還是比較好。 今天來講一個簡單的敘述統計...
    Thumbnail
    首先我要介紹的這個案例式我前天剛拿到的,熱騰騰的端午節玩家儲值活動優惠贈送 (內容數字已做調整,與原先不同,此只為一起研究Excel)
    Thumbnail
    對於很多人來說Excel只是一般『紀錄』工具,他能夠呈現了報表、銷售量...等數字,但其實他所能帶給你的不僅僅是『紀錄』。 其實我是一個很懶的人,對於我來說,事情我就是想要把它做到最簡化,能夠讓我省下大把的時間來偷閒摸魚最好,而公司又沒有買些什麼系統可以用時,Excel就是讓我達成這目標的最偉大功臣
    Thumbnail
    黑豬王子”說不定都以為自己是”白馬騎士” ......