این خطا در زمان افزودن ردیف یا ستون یا زمان تغییر عرض و ارتفاع سلولها اتفاق می افتد
در محلی که این تغییرات رخ می دهد ردیف یا ستون مخفی شده دارید کافیست انها را از حالت مخفی خارج کرده تغییرات مورد نیاز را اعمال نموده و مجددا ردیف ها یا ستونهای مدنظر مخفی شود
listbox1.ColumnWidths = "50,50,100"
نقل شده از
https://stackoverflow.com/questions/5088787/excel-vba-listbox
چناچه یک فایل اکسل در شبکه مورد استفاده قرار گیرد صرفا برای نفر اول قابل خواندن و نوشتن می باشد و برای نفرات بعدی فقط خواندنی گاهی اوقات به علت عدم اطلاع کاربران از این موضوع فایل ها در حالت فقط خواندنی باز شده و تغییرات داده می شود و ذخیره نمی شوند که محل اشکال است لذا راه حل ساده ان بستن قابلیت باز شدن فایل در حالت فقط خواندنی می باشد
Private Sub Workbook_open If ThisWorkbook.ReadOnly Then ThisWorkbook.close End If End Sub
برای انتخاب یک sheet در اکسل توسط کد نویسی روش های مختلفی وجود دارد
1- انتخاب با نام وضع شده توسط کاربر
activesheet.name
sheets("name").select
2- انتخاب با نام وضع شده در محیط برنامه نویسی
activesheet.codename
For Each Worksheet In Worksheets
If Worksheet.CodeName = codename Then
Worksheet.Select
Exit For
End If
Next
3- انتخاب با شماره sheet از ابتدا یا ایندکس(برگه ها از ابتدا شمارش می شوند و به هر یک شماره ای اختصاص می یابد)
activesheet.index
sheets(i).select
بحث فیلتر پیشرفته روی متون چه در کد نویسی چه در محدوده اکسل مورد نظر بنده نمی باشد که در سایت های فراوانی درباره آن صحبت شده است مشکلی که وجود دارد استفاده از این ابزار جهت کار روی اعداد می باشد
در این حالت این فیلتر هیچ کاربردی ندارد و قابل استفاده روی اعداد نمی باشد
تنها راه تبدیل اعداد به متن و سپس انجام فیلتر می باشد
در کد نویسی جهت تبدیل عدد به متن از تابع str استفاده نمائید
در پایان یاداوری می شود که شرط فیلتر هم حتما به متن تبدیل شود
در صورتی که نمودار در صفحات با اطلاعات زیاد داشته باشیم زمانی که کاربر در صفحه اسکرول به بالا یا پایین نماید نمودارها از محدوده نمایش خارج می شوند در صورتی که نیاز باشد نمودارها هم با اسکرول به مکان جدید منتقل شوند از کدهای زیر استفاده نمائید
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'UpdatebyExtendoffice20161111
Dim CPos As Double
Application.ScreenUpdating = False
CPos = ActiveWindow.ScrollRow * ActiveCell.RowHeight
ActiveSheet.ChartObjects("Chart 2").Activate
ActiveSheet.Shapes("Chart 2").Top = CPos
ActiveWindow.Visible = False
Application.ScreenUpdating = True
End Sub
نقل شده از
https://www.extendoffice.com/documents/excel/4201-excel-keep-chart-in-view.html
در فرم اکسل اگر دو گروه از دکمه های رادیویی به صورت مستقل داشته باشیم امکان انتخاب جداگانه بین آنها وجود ندارد برای رفع این مشکل کافیست هر کدام را در یک فریم قرار دهید تا اکسل بین آنها تمایز قائل شده و امکان انتخاب جداگانه ایجاد شود
نقل شده از
جهت پخش فایل صوتی در اکسل بایستی از API های ویندوز استفاده نمود که برای فراخوانی آنها از declare statement استفاده می شود لذا جهت شروع بایستی API مربوطه را فراخوانی نمائیم
Public Declare Function Sound32 _ Lib "winmm.dll" _ Alias "sndPlaySoundA" ( _ ByVal lpszSoundName As String, _ ByVal uFlags As Long) As Long
سپس در هر بخش از کد که نیاز به پخش یک فایل صوتی است تابع فوق را فراخوانی می کنیم مشابه زیر
Call sound32(WAVFile, snd_sync)
wavfile مسیر قرارگیری فایل است و گزینه بعدی نحوه پخش را مشخص می کند که پیش فرض snd_sync می باشد
Const SND_SYNC = &H0 ' (Default) Play the sound synchronously. Code execution ' pauses until sound is complete. Const SND_ASYNC = &H1 ' Play the sound asynchronously. Code execution ' does not wait for sound to complete. Const SND_NODEFAULT = &H2 ' If the specified sound is not found, do not play ' the default sound (no sound is played). Const SND_MEMORY = &H4 ' lpszSoundName is a memory file of the sound. ' Not used in VBA/VB6. Const SND_LOOP = &H8 ' Continue playing sound in a loop until the next ' call to sndPlaySound. Const SND_NOSTOP = &H10 ' Do not stop playing the current sound before playing ' the specified sound.
نقل شده از
http://www.cpearson.com/excel/PlaySound.aspx
https://excel.tips.net/T006559_Conditionally_Playing_an_Audio_File.html
اگر در کد نویسی نیاز دارید یک فرمول را به تعداد زیادی سلول اختصاص دهید یا کپی کنید از کد زیر استفاده نمائید
Range("A2:A" & Range("B1").Value).Formula = Range("A1").Formula
در مثال فوق range(b1) انتهای محل کپی شدن می باشد
البته راههای دیگری نیز وجود دارد که این راه ساده تر می باشد
درباره این سایت