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
留言分享你的想法!
avatar-img
hls Ding的沙龍
7會員
68內容數
ktest
hls Ding的沙龍的其他內容
2025/03/06
import csv import os folder = 'D:/PROGRAMMING/PythonCode/data_arrange/' fname_sum = 'sum.csv' bump = 6 csv_filenames = [f for f in os.listdir(folde
2025/03/06
import csv import os folder = 'D:/PROGRAMMING/PythonCode/data_arrange/' fname_sum = 'sum.csv' bump = 6 csv_filenames = [f for f in os.listdir(folde
看更多
你可能也想看
Thumbnail
生產力爆發帶來的過剩,會讓過去的「還可以啦」成為最低標準。市場需求對於出類拔萃、獨一無二的需求還是存在,但是對於那些價格高度敏感,或是只需要穩定、便宜、還可以啦的需求端來說,AI 正在迅速取代這部分的供給,中間長尾的服務提供者被 AI 替換。
Thumbnail
生產力爆發帶來的過剩,會讓過去的「還可以啦」成為最低標準。市場需求對於出類拔萃、獨一無二的需求還是存在,但是對於那些價格高度敏感,或是只需要穩定、便宜、還可以啦的需求端來說,AI 正在迅速取代這部分的供給,中間長尾的服務提供者被 AI 替換。
Thumbnail
微軟的EXCEL又出了一個新函數了【TRANSLATE】,TRANSLATE這個單字翻譯成中文就是翻譯的意思,他的功能就是"翻譯"。 有了這個函數就可以直接在原有資料進行翻譯,不用再把資料丟到Google翻譯或是GPT了。 🔎函數說明 TRANSLATE(要翻譯的內容,原始語言,翻
Thumbnail
微軟的EXCEL又出了一個新函數了【TRANSLATE】,TRANSLATE這個單字翻譯成中文就是翻譯的意思,他的功能就是"翻譯"。 有了這個函數就可以直接在原有資料進行翻譯,不用再把資料丟到Google翻譯或是GPT了。 🔎函數說明 TRANSLATE(要翻譯的內容,原始語言,翻
Thumbnail
本法省去開啟EXCEL檔,轉存為CSV檔之手動作業,縮短作業時間,提高工作效率,尤其是對象為複數個檔案場合
Thumbnail
本法省去開啟EXCEL檔,轉存為CSV檔之手動作業,縮短作業時間,提高工作效率,尤其是對象為複數個檔案場合
Thumbnail
這篇文章介紹如何使用VBA程式碼將【包含備註】的Excel檔案轉換為PDF檔。在研究這個問題時,作者花了3個小時多的時間,但後來發現了一個更簡單的方法,這讓作者感到震驚和懷疑人生。最後,作者強調使用他人的智慧來提高自己的能力。文章提供了相關參考文獻和圖片。
Thumbnail
這篇文章介紹如何使用VBA程式碼將【包含備註】的Excel檔案轉換為PDF檔。在研究這個問題時,作者花了3個小時多的時間,但後來發現了一個更簡單的方法,這讓作者感到震驚和懷疑人生。最後,作者強調使用他人的智慧來提高自己的能力。文章提供了相關參考文獻和圖片。
Thumbnail
本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
Thumbnail
本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
Thumbnail
在Excel中實作使用者介面(UI)是一個有趣且實用的技能,能夠幫助你更好地呈現資料、提供功能並增強使用者體驗。本文將逐步介紹如何在Excel中建立基本的UI元素,例如按鈕、下拉式選單和文字框,並擴展功能,例如資料驗證和動態更新。
Thumbnail
在Excel中實作使用者介面(UI)是一個有趣且實用的技能,能夠幫助你更好地呈現資料、提供功能並增強使用者體驗。本文將逐步介紹如何在Excel中建立基本的UI元素,例如按鈕、下拉式選單和文字框,並擴展功能,例如資料驗證和動態更新。
Thumbnail
設計完一覽表之後,如果會寫程式的人可以每天用這種方法去抓資料放到Excel. 那不會寫程式的人呢? 這裡教你一個稍微要花點時間的輸出Excel的方法。 在上禮拜完成的自選裡。   一、  你先依下圖,在“功能”中找到”輸出到Excel”,按下報價精靈 二、  選擇全部加入,按下全部加
Thumbnail
設計完一覽表之後,如果會寫程式的人可以每天用這種方法去抓資料放到Excel. 那不會寫程式的人呢? 這裡教你一個稍微要花點時間的輸出Excel的方法。 在上禮拜完成的自選裡。   一、  你先依下圖,在“功能”中找到”輸出到Excel”,按下報價精靈 二、  選擇全部加入,按下全部加
Thumbnail
如何運用函數來讓資料產生空白列,而且當輸入多少數字,就會插入多少空白列。 <插入空白列> E5=TOCOL(EXPAND(B5:B9,,C3+1,"")) 📝函數說明 ✍🏾EXPAND陣列擴展函數 函數說明=EXPAND(範圍,展開的列,展開的欄,要展開的內容)
Thumbnail
如何運用函數來讓資料產生空白列,而且當輸入多少數字,就會插入多少空白列。 <插入空白列> E5=TOCOL(EXPAND(B5:B9,,C3+1,"")) 📝函數說明 ✍🏾EXPAND陣列擴展函數 函數說明=EXPAND(範圍,展開的列,展開的欄,要展開的內容)
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News