คำถามติดแท็ก excel

สำหรับคำถามเกี่ยวกับการเขียนโปรแกรมกับวัตถุหรือไฟล์ Excel หรือการพัฒนาสูตรที่ซับซ้อน คุณสามารถรวมแท็ก Excel กับ VBA, VSTO, C #, VB.NET, PowerShell, OLE automation และแท็กและคำถามเกี่ยวกับการเขียนโปรแกรมอื่น ๆ ที่เกี่ยวข้อง ความช่วยเหลือทั่วไปเกี่ยวกับ MS Excel สำหรับฟังก์ชั่นแผ่นงานเดียวมีอยู่ที่ Super User


5
ฉันจะหลีกเลี่ยงเครื่องหมายจุลภาคและเครื่องหมายคำพูดในไฟล์ CSV เพื่อให้ทำงานใน Excel ได้อย่างไร
ฉันกำลังสร้างไฟล์ CSV (คั่นด้วยจุลภาคแทนที่จะเป็นแท็บ) ผู้ใช้ของฉันมักจะเปิดไฟล์ CSV ใน Excel โดยดับเบิลคลิกที่ไฟล์นั้น ข้อมูลของฉันอาจมีลูกน้ำและเครื่องหมายคำพูดดังนั้นฉันจึงหลีกเลี่ยงสิ่งเหล่านี้ดังนี้ Reference, Title, Description 1, "My little title", "My description, which may contain ""speech marks"" and commas." 2, "My other little title", "My other description, which may also contain ""speech marks"" and commas." เท่าที่ฉันรู้นั่นเป็นวิธีที่ต้องทำเสมอ นี่คือความเข้าใจผิดของฉัน: เมื่อฉันเปิดไฟล์นี้ใน Excel 2010 การหลบหนีของฉันไม่ได้รับการยอมรับ เครื่องหมายคำพูดปรากฏบนแผ่นงานและลูกน้ำจะทำให้เกิดคอลัมน์ใหม่

13
มีวิธีปรับความกว้างคอลัมน์ Excel โดยอัตโนมัติด้วย pandas.ExcelWriter หรือไม่?
ฉันถูกขอให้สร้างรายงาน Excel ตอนนี้ฉันใช้แพนด้าค่อนข้างหนักสำหรับข้อมูลของฉันดังนั้นฉันจึงอยากใช้เมธอดของแพนด้าเอ็กเซลวอเตอร์เพื่อสร้างรายงานเหล่านี้ อย่างไรก็ตามความกว้างของคอลัมน์คงที่เป็นปัญหา รหัสที่ฉันมีนั้นง่ายพอ สมมติว่าฉันมี dataframe ชื่อ 'df': writer = pd.ExcelWriter(excel_file_path, engine='openpyxl') df.to_excel(writer, sheet_name="Summary") ฉันกำลังดูรหัสแพนด้าและฉันไม่เห็นตัวเลือกใด ๆ ในการตั้งค่าความกว้างของคอลัมน์ มีเคล็ดลับในจักรวาลเพื่อให้คอลัมน์ปรับข้อมูลโดยอัตโนมัติหรือไม่? หรือมีบางอย่างที่ฉันสามารถทำได้หลังจากข้อเท็จจริงกับไฟล์ xlsx เพื่อปรับความกว้างของคอลัมน์ (ฉันใช้ไลบรารี OpenPyXL และสร้างไฟล์. xlsx - หากสิ่งนั้นสร้างความแตกต่าง) ขอขอบคุณ.
111 python  excel  pandas  openpyxl 

11
รูปแบบการประทับเวลาที่ดีที่สุดสำหรับ CSV / Excel?
ฉันกำลังเขียนไฟล์ CSV ฉันต้องเขียนการประทับเวลาที่แม่นยำอย่างน้อยถึงวินาทีและควรเขียนเป็นมิลลิวินาที รูปแบบใดที่ดีที่สุดสำหรับการประทับเวลาในไฟล์ CSV เพื่อให้ Excel แยกวิเคราะห์ได้อย่างแม่นยำและไม่น่าสงสัยโดยมีการแทรกแซงของผู้ใช้เพียงเล็กน้อย

7
จะระงับคำเตือน Update Links ได้อย่างไร?
ฉันกำลังพยายามเขียนสคริปต์ที่เปิดไฟล์ Excel จำนวนมาก ฉันได้รับข้อความแจ้ง: This workbook contains links to other data sources. ฉันต้องการป้องกันไม่ให้ข้อความนี้ปรากฏขึ้นเพื่อให้สคริปต์ของฉันสามารถดูเวิร์กบุ๊กทั้งหมดได้โดยอัตโนมัติโดยที่ฉันไม่ต้องคลิกDon't Updateสำหรับแต่ละรายการ ขณะนี้ฉันใช้สิ่งต่อไปนี้: function getWorkbook(bkPath as string) as workbook Application.EnableEvents=False Application.DisplayAlerts=False getWorkbook=Workbooks.Open(bkPath,updatelinks:=0,readonly:=false) end function อย่างไรก็ตามข้อความดังกล่าวยังคงปรากฏอยู่ ฉันจะระงับมันได้อย่างไร? แก้ไข: ดูเหมือนว่าข้อความนี้จะปรากฏขึ้นสำหรับสมุดงานที่มีลิงก์เสีย ฉันไม่เห็นThis workbook contains one or more links that cannot be updatedข้อความเพราะฉันตั้งค่าDisplayAlertsเป็นเท็จ สมุดงานเชื่อมโยงกับไฟล์ที่เทียบเท่าในโฟลเดอร์บนเซิร์ฟเวอร์ Windows ของเราดังนั้นเมื่อไฟล์ที่ตรงกันถูกลบออกจากโฟลเดอร์นั้น (ซึ่งเกิดขึ้นเป็นส่วนหนึ่งของกระบวนการทางธุรกิจของเรา) ลิงก์จะแตก เป็นไปได้หรือไม่ที่จะระงับการเตือนเมื่อลิงค์เสีย? นอกจากนี้ฉันใช้ Excel 2010
110 excel  vba 

8
ผู้ให้บริการ 'Microsoft.ACE.OLEDB.16.0' ไม่ได้ลงทะเบียนบนเครื่องท้องถิ่น (System.Data)
ฉันได้รับข้อผิดพลาดนี้เมื่อพยายามเชื่อมต่อกับ excel ใด ๆ ผ่าน MSSQL Server Data Import เช่นแพ็คเกจ SSIS Microsoft.ACE.OLEDB.16.0ผู้ให้บริการไม่ได้ลงทะเบียนในเครื่องภายใน ( System.Data) ไม่ใช่เวอร์ชันเดียวกันฉันคิดว่าจำเป็นต้องมีการแก้ไขอื่น ๆ


3
แยกออกจาก while … Wend loop
ฉันใช้ While ... Wend loop ของ VBA Dim count as Integer While True count=count+1 If count = 10 Then ''What should be the statement to break the While...Wend loop? ''Break or Exit While not working EndIf Wend ฉันไม่ต้องการใช้เงื่อนไขเช่น `While count <= 10 ... Wend
107 excel  vba  while-loop 

5
เมื่อใดควรใช้รูปแบบ xlsm หรือ xlsb
ตั้งแต่ Excel 2007, Microsoft ได้แบ่งคลาสสิก.xlsรูปแบบหลายรูปแบบ (โดยเฉพาะอย่างยิ่ง.xlsx, .xlsm, .xlsb) ฉันไม่มีปัญหาในการทำความเข้าใจการใช้งานและวัตถุประสงค์ของ.xlsxรูปแบบ แต่ฉันยังสงสัยว่าเราควรใช้ a .xlsmหรือ.xlsbรูปแบบเมื่อสร้างไฟล์ที่มี VBA แน่นอนคุณสามารถค้นหาบางหัวข้อบนเว็บเช่น: ในฟอรัมคำตอบของ Microsoft เกี่ยวกับไมโครซอฟท์บล็อกที่ถูกชี้ในการเชื่อมโยงก่อนหน้า ( แต่ฉันได้แยกวิเคราะห์จนถึง 10 THหน้าโดยไม่ต้องค้นหาเตะไป.xlsb) หัวข้อนี้จากฟอรัมอื่น สิ่งที่ฉันเข้าใจจากลิงก์สุดท้ายนี้.xlsmคือรูปแบบ XML บางประเภทดังนั้นจึงจำเป็นสำหรับแท็บ Ribbon ที่กำหนดเอง นอกเหนือจากความแตกต่างทางแนวคิดระหว่างรูปแบบ ( .xlsmอิงตามXML VS .xlsbเป็นไฟล์ไบนารี ) มีความแตกต่างในทางปฏิบัติเมื่อใช้ไฟล์ใด ๆ (นอกเหนือจากการปรับแต่ง Ribbon) หรือไม่ คุณเคยเห็นความแตกต่างที่แท้จริงเมื่อใช้รูปแบบเหล่านี้หรือไม่?
106 excel  excel-2007  xlsm  xlsb 

15
แปลง XLS เป็น CSV ในบรรทัดคำสั่ง
ฉันจะแปลงไฟล์ XLS เป็นไฟล์ CSV บนบรรทัดคำสั่งของ Windows ได้อย่างไร เครื่องมี Microsoft Office 2000 ติดตั้งอยู่ ฉันเปิดให้ติดตั้ง OpenOffice หากไม่สามารถใช้ Microsoft Office ได้
104 windows  excel  csv 

11
ใช้ Excel OleDb เพื่อรับชื่อแผ่นงานใน SHEET ORDER
ฉันใช้ OleDb เพื่ออ่านจากสมุดงาน excel ที่มีแผ่นงานมากมาย ฉันต้องการอ่านชื่อแผ่นงาน แต่ต้องการตามลำดับที่กำหนดไว้ในสเปรดชีต ดังนั้นหากฉันมีไฟล์ที่มีลักษณะเช่นนี้ |_____|_____|____|____|____|____|____|____|____| |_____|_____|____|____|____|____|____|____|____| |_____|_____|____|____|____|____|____|____|____| \__GERMANY__/\__UK__/\__IRELAND__/ จากนั้นฉันต้องได้รับพจนานุกรม 1="GERMANY", 2="UK", 3="IRELAND" ฉันได้ลองใช้OleDbConnection.GetOleDbSchemaTable()แล้วและนั่นทำให้ฉันมีรายชื่อ แต่เรียงตามตัวอักษร การเรียงลำดับอัลฟาหมายความว่าฉันไม่รู้ว่าชื่อแผ่นงานใดตรงกับชื่อใด ดังนั้นฉันจึงได้รับ; GERMANY, IRELAND, UK ซึ่งมีการเปลี่ยนแปลงคำสั่งของและUKIRELAND เหตุผลที่ฉันต้องจัดเรียงก็คือฉันต้องให้ผู้ใช้เลือกช่วงข้อมูลตามชื่อหรือดัชนี พวกเขาสามารถขอ 'ข้อมูลทั้งหมดจาก GERMANY ถึง IRELAND' หรือ 'ข้อมูลจากแผ่นงาน 1 ถึงแผ่นงาน 3' ความคิดใด ๆ ที่จะได้รับการชื่นชมอย่างมาก. ถ้าฉันสามารถใช้คลาสการทำงานร่วมกันของสำนักงานได้นี่จะตรงไปตรงมา น่าเสียดายที่ฉันทำไม่ได้เพราะคลาสการทำงานร่วมกันไม่ทำงานได้อย่างน่าเชื่อถือในสภาพแวดล้อมที่ไม่โต้ตอบเช่นบริการ windows และไซต์ ASP.NET ดังนั้นฉันจึงจำเป็นต้องใช้ OLEDB
103 c#  excel  oledb  server-side 

15
จะหยุดชั่วคราวตามระยะเวลาที่กำหนดได้อย่างไร? (Excel / VBA)
ฉันมีแผ่นงาน Excel ที่มีมาโครต่อไปนี้ ฉันอยากจะวนซ้ำทุก ๆ วินาที แต่ถ้าฉันสามารถหาฟังก์ชั่นนี้ได้ เป็นไปไม่ได้เหรอ? Sub Macro1() ' ' Macro1 Macro ' Do Calculate 'Here I want to wait for one second Loop End Sub
103 excel  vba 

11
Apache POI Excel - จะกำหนดค่าคอลัมน์ที่จะขยายได้อย่างไร?
ฉันใช้Apache POI APIสร้างexcel spreadsheetเพื่อส่งออกข้อมูลบางอย่าง ปัญหาที่ฉันพบคือเมื่อสร้างและเปิดสเปรดชีตคอลัมน์จะไม่ขยายทำให้ข้อความยาว ๆ เช่นข้อความที่จัดรูปแบบวันที่ไม่ปรากฏขึ้นในครั้งแรก ฉันสามารถดับเบิลคลิกที่ขอบคอลัมน์ใน excel เพื่อขยายหรือลากเส้นขอบเพื่อปรับความกว้างของคอลัมน์ แต่อาจมีมากกว่า 20 คอลัมน์และไม่มีวิธีใดที่ฉันต้องการทำด้วยตนเองทุกครั้งที่เปิดสเปรดชีต :( ฉันพบ (แม้ว่าอาจจะผิดวิธี) groupRow()และsetColumnGroupCollapsed()อาจสามารถทำเคล็ดลับได้ แต่ไม่มีโชค บางทีฉันใช้มันในทางที่ผิด ตัวอย่างข้อมูลโค้ด Workbook wb = new HSSFWorkbook(); CreationHelper createHelper = wb.getCreationHelper(); //create sheet Sheet sheet = wb.createSheet("masatoSheet"); //not really working yet.... :( //set group for expand/collapse //sheet.groupRow(0, 10); //just random fromRow toRow …
102 java  excel  expand  apache-poi 

9
ทำงานกับเวลา DURATION ไม่ใช่ช่วงเวลาของวัน
ฉันกำลังทำการเปรียบเทียบและต้องการใช้ Excel เพื่อสร้างกราฟของผลลัพธ์ ฉันมีปัญหาง่ายๆ แต่น่ารำคาญคือการอบบะหมี่ของฉัน ปัญหาคือ Excel ยืนยันว่า "เวลา" หมายถึงช่วงเวลาของวัน มันไม่ยอมให้ฉันทำงานที่มีเวลาระยะเวลา เมื่อฉันพยายามพูดว่า "สามนาทีหกวินาที" มันแปลผิดว่า "สามนาทีหกวินาทีที่ผ่านมาเที่ยงคืน " ซึ่งไม่ใช่สิ่งที่ฉันหมายถึงเลย ฉันสามารถแก้ไขปัญหาได้โดยการแปลงทุกอย่างเป็นวินาที แต่กราฟทั้งหมดของฉันมีป้ายกำกับเป็นวินาทีไม่ใช่นาทีและวินาที พลัสมันเป็นความเจ็บปวดที่จะต้องให้การพิมพ์ในมากกว่าแค่=3*60+6 3:06และเมื่อฉันทำเสร็จแล้วฉันต้องดูสูตรเพื่อตรวจสอบว่าฉันป้อนข้อมูลถูกต้องหรือไม่ [และไม่ได้ทำผิดสูตร] มีใครรู้บ้างว่าฉันจะทำให้ Excel ทำงานได้โดยมีช่วงเวลาที่ไม่ยึดติดกับช่วงเวลาใดเวลาหนึ่งของวัน
102 excel 

3
การค้นหาคำแนะนำเครื่องมือฟังก์ชันที่กำหนดเองของ Excel
เคยถาม คำถามนี้มาก่อนแต่ทุกครั้งที่ได้รับคำตอบเป็นเพียงการลาออกเพื่อให้คำอธิบายฟังก์ชันโดยใช้Application.MacroOptions( VBA6 ) ( VBA7 ) แต่ข้อมูลนี้ไม่ได้ปรากฏเป็นคำแนะนำเครื่องมือดังนั้นจึงไม่สามารถแก้ปัญหาของฉันได้ เป้าหมาย สิ่งที่เราทุกคนปรารถนาคือสามารถกำหนดฟังก์ชันที่กำหนดเองได้ด้วยวิธีการใด ๆ (VBA, VSTO หรือ COM add-in) และให้ประโยชน์แก่ผู้ใช้จากคำอธิบายป๊อปอัป / คำแนะนำเครื่องมือของฟังก์ชันและพารามิเตอร์ดังที่ ปรากฏขึ้นสำหรับทุกฟังก์ชัน Excel ในตัวไม่ว่าจะเป็นแบบอินไลน์หรือในแถบสูตร: คำตอบที่ได้รับการยอมรับอย่างกว้างขวางสำหรับความต้องการนี้คือไม่สามารถใช้ฟังก์ชันแบบกำหนดเองได้ แต่ฉันต้องการท้าทายความเชื่อนั้น ปัญหา ปัจจุบันสิ่งที่ดีที่สุดที่ฉันเคยเห็นใคร ๆ ทำคือการกำหนดฟังก์ชัน (มักใช้การเรียก MacroOptions ด้านบน) ดังนั้นเมื่อเปิดกล่องโต้ตอบฟังก์ชัน (ปุ่ม fx ในแถบสูตร) ​​คำอธิบายฟังก์ชันและพารามิเตอร์จะปรากฏดังต่อไปนี้: อย่างที่คุณเห็นนี่เป็นฟังก์ชันที่ซับซ้อนซึ่งมีพารามิเตอร์มากมาย หากผู้ใช้ไม่ทราบถึงบทสนทนา "function arguments" และวิธีนำมาใช้และแทนที่จะคุ้นเคยกับ tooltip มาตรฐานของ Excel แต่จะเห็นเฉพาะชื่อสูตรและไม่มีความช่วยเหลือเพิ่มเติม: ซึ่งพวกเขาไม่มีโอกาสที่จะระบุพารามิเตอร์ที่ต้องการได้อย่างถูกต้อง (โดยไม่อ่านเอกสารซึ่งแน่นอนว่าไม่มีผู้ใช้คนใดเคยทำ) ตอนนี้ผู้ใช้ระดับสูงอาจรู้แล้วว่าด้วยการพิมพ์Ctrl+ Shift+ Aพวกเขาจะได้รับรายการพารามิเตอร์ฟังก์ชันที่กรอกอัตโนมัติดังนี้: …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.